From 984e19cdf3fb64c8a9a29e0879cdd77c05c6dce3 Mon Sep 17 00:00:00 2001 From: David Racero Date: Fri, 27 Aug 2021 13:22:07 +0200 Subject: [PATCH] config: revised risk config --- helpers/constants.ts | 5 +- helpers/types.ts | 6 +- markets/avalanche/commons.ts | 59 +++++----- markets/avalanche/index.ts | 36 +++--- markets/avalanche/rateStrategies.ts | 98 ++-------------- markets/avalanche/reservesConfigs.ts | 155 ++++++++++++-------------- test-suites/test-aave/__setup.spec.ts | 2 +- 7 files changed, 137 insertions(+), 224 deletions(-) diff --git a/helpers/constants.ts b/helpers/constants.ts index 7d562f5e..fe743fa2 100644 --- a/helpers/constants.ts +++ b/helpers/constants.ts @@ -31,7 +31,8 @@ export const MOCK_USD_PRICE_IN_WEI = '5848466240000000'; export const USD_ADDRESS = '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96'; export const AAVE_REFERRAL = '0'; -export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { // Update to USD-based price feeds +export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { + // Update to USD-based price feeds AAVE: oneEther.multipliedBy('0.003620948469').toFixed(), BAT: oneEther.multipliedBy('0.00137893825230').toFixed(), BUSD: oneEther.multipliedBy('0.00736484').toFixed(), @@ -71,6 +72,6 @@ export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { // Update to USD-based price WMATIC: oneEther.multipliedBy('0.003620948469').toFixed(), STAKE: oneEther.multipliedBy('0.003620948469').toFixed(), xSUSHI: oneEther.multipliedBy('0.00913428586').toFixed(), - AVAX: oneEther.multipliedBy('0.006051936629').toFixed(), + WAVAX: oneEther.multipliedBy('0.006051936629').toFixed(), USD: '5848466240000000', }; diff --git a/helpers/types.ts b/helpers/types.ts index 5f9cdebf..f0a39994 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -247,7 +247,7 @@ export interface iAssetBase { WMATIC: T; STAKE: T; xSUSHI: T; - AVAX: T; + WAVAX: T; } export type iAssetsWithoutETH = Omit, 'ETH'>; @@ -316,7 +316,7 @@ export type iXDAIPoolAssets = Pick< export type iAvalanchePoolAssets = Pick< iAssetsWithoutUSD, - 'WETH' | 'DAI' | 'USDC' | 'USDT' | 'AAVE' | 'WBTC' | 'AVAX' + 'WETH' | 'DAI' | 'USDT' | 'AAVE' | 'WBTC' | 'WAVAX' | 'USDC' >; export type iMultiPoolsAssets = iAssetCommon | iAavePoolAssets; @@ -366,7 +366,7 @@ export enum TokenContractId { WMATIC = 'WMATIC', STAKE = 'STAKE', xSUSHI = 'xSUSHI', - AVAX = 'AVAX', + WAVAX = 'WAVAX', } export interface IReserveParams extends IReserveBorrowParams, IReserveCollateralParams { diff --git a/markets/avalanche/commons.ts b/markets/avalanche/commons.ts index 84b482ec..47682fd3 100644 --- a/markets/avalanche/commons.ts +++ b/markets/avalanche/commons.ts @@ -18,7 +18,7 @@ export const CommonsConfig: ICommonConfiguration = { ATokenNamePrefix: 'Aave Avalanche Market', StableDebtTokenNamePrefix: 'Aave Avalanche Market stable debt', VariableDebtTokenNamePrefix: 'Aave Avalanche Market variable debt', - SymbolPrefix: 'ava', + SymbolPrefix: 'v', ProviderId: 0, // Overriden in index.ts OracleQuoteCurrency: 'USD', OracleQuoteUnit: oneUsd.toString(), @@ -60,9 +60,9 @@ export const CommonsConfig: ICommonConfiguration = { WBTC: { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, - AVAX: { + WAVAX: { borrowRate: oneRay.multipliedBy(0.05).toFixed(), // TODO: fix borrowRate? - } + }, }, // ---------------- // COMMON PROTOCOL ADDRESSES ACROSS POOLS @@ -71,98 +71,95 @@ export const CommonsConfig: ICommonConfiguration = { // If PoolAdmin/emergencyAdmin is set, will take priority over PoolAdminIndex/emergencyAdminIndex PoolAdmin: { [eAvalancheNetwork.avalanche]: undefined, - [eAvalancheNetwork.fuji]: undefined + [eAvalancheNetwork.fuji]: undefined, }, PoolAdminIndex: 0, EmergencyAdminIndex: 0, EmergencyAdmin: { [eAvalancheNetwork.avalanche]: undefined, - [eAvalancheNetwork.fuji]: undefined + [eAvalancheNetwork.fuji]: undefined, }, ProviderRegistry: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0x06eC0BDC3997EE32Cb5B66a1B9C11d92e2C27Aab' + [eAvalancheNetwork.fuji]: '0x06eC0BDC3997EE32Cb5B66a1B9C11d92e2C27Aab', }, ProviderRegistryOwner: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e' + [eAvalancheNetwork.fuji]: '0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e', }, LendingRateOracle: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0xEbBD998B7Dc2a8E675F0859d907c8Fa6027aBc7b' + [eAvalancheNetwork.fuji]: '0xEbBD998B7Dc2a8E675F0859d907c8Fa6027aBc7b', }, LendingPoolCollateralManager: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0x6242bE2fB5591FA1e81a99e6DD55Ff667fa82a71' + [eAvalancheNetwork.fuji]: '0x6242bE2fB5591FA1e81a99e6DD55Ff667fa82a71', }, LendingPoolConfigurator: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '' + [eAvalancheNetwork.fuji]: '', }, LendingPool: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0x5f3968A2E41C95A95329333d44AB989de6c43f8E' + [eAvalancheNetwork.fuji]: '0x5f3968A2E41C95A95329333d44AB989de6c43f8E', }, WethGateway: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0x62AF6258d26838f33BADFbb33cf1De8FaB8EB19f' + [eAvalancheNetwork.fuji]: '0x62AF6258d26838f33BADFbb33cf1De8FaB8EB19f', }, TokenDistributor: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '' + [eAvalancheNetwork.fuji]: '', }, AaveOracle: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0xD217DdD9f0Af84644dEFe84a0b634621D4617a29' + [eAvalancheNetwork.fuji]: '0xD217DdD9f0Af84644dEFe84a0b634621D4617a29', }, FallbackOracle: { [eAvalancheNetwork.avalanche]: ZERO_ADDRESS, - [eAvalancheNetwork.fuji]: ZERO_ADDRESS + [eAvalancheNetwork.fuji]: ZERO_ADDRESS, }, ChainlinkAggregator: { [eAvalancheNetwork.avalanche]: { WETH: '0x976B3D034E162d8bD72D6b9C989d545b839003b0', DAI: '0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300', - USDC: ' 0xF096872672F44d6EBA71458D74fe67F9a77a23B9', + USDC: '0xF096872672F44d6EBA71458D74fe67F9a77a23B9', USDT: '0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a', AAVE: '0x3CA13391E9fb38a75330fb28f8cc2eB3D9ceceED', WBTC: '0x2779D32d5166BAaa2B2b658333bA7e6Ec0C65743', - AVAX: '0x0A77230d17318075983913bC2145DB16C7366156', + WAVAX: '0x0A77230d17318075983913bC2145DB16C7366156', }, [eAvalancheNetwork.fuji]: { WETH: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA', - // DAI: '', - // USDC: '', USDT: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad', - // AAVE: '', WBTC: '0x31CF013A08c6Ac228C94551d535d5BAfE19c602a', - AVAX: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD', - USD: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA' + WAVAX: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD', + USD: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA', }, }, ReserveAssets: { [eAvalancheNetwork.avalanche]: {}, - [eAvalancheNetwork.fuji]: {} + [eAvalancheNetwork.fuji]: {}, }, ReservesConfig: {}, ATokenDomainSeparator: { [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '' + [eAvalancheNetwork.fuji]: '', }, WETH: { [eAvalancheNetwork.avalanche]: '0xf20d962a6c8f70c731bd838a3a388D7d48fA6e15', // WETH Address - [eAvalancheNetwork.fuji]: '0x3b8b3fc85ccA720809Af2dA4B58cF4ce84bcbdd0' // MintableERC20 WETH + [eAvalancheNetwork.fuji]: '0x3b8b3fc85ccA720809Af2dA4B58cF4ce84bcbdd0', // MintableERC20 WETH }, WrappedNativeToken: { - [eAvalancheNetwork.avalanche]: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', // Official WAVAX - [eAvalancheNetwork.fuji]: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c' // Official WAVAX + [eAvalancheNetwork.avalanche]: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', // Official WAVAX + [eAvalancheNetwork.fuji]: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', // Official WAVAX }, ReserveFactorTreasuryAddress: { - [eAvalancheNetwork.avalanche]: '', - [eAvalancheNetwork.fuji]: '0xB45F5C501A22288dfdb897e5f73E189597e09288' // Self-controlled EOA + [eAvalancheNetwork.avalanche]: '0xBDEE917d2BDE529eDEc5b20e0B770F56EDFE8e74', // Not Final, only for test purposes + [eAvalancheNetwork.fuji]: '0xB45F5C501A22288dfdb897e5f73E189597e09288', // Self-controlled EOA }, IncentivesController: { - [eAvalancheNetwork.avalanche]: ZERO_ADDRESS, - [eAvalancheNetwork.fuji]: '0xa1EF206fb9a8D8186157FC817fCddcC47727ED55' // AVAX Incentives Controller + [eAvalancheNetwork.avalanche]: ZERO_ADDRESS, // Not final, no incentives proxy for test purposes + [eAvalancheNetwork.fuji]: '0xa1EF206fb9a8D8186157FC817fCddcC47727ED55', // WAVAX Incentives Controller }, }; diff --git a/markets/avalanche/index.ts b/markets/avalanche/index.ts index a0d4ab13..381c2b8d 100644 --- a/markets/avalanche/index.ts +++ b/markets/avalanche/index.ts @@ -1,5 +1,10 @@ import { oneRay, ZERO_ADDRESS } from '../../helpers/constants'; -import { IAaveConfiguration, eEthereumNetwork, eAvalancheNetwork, IAvalancheConfiguration } from '../../helpers/types'; +import { + IAaveConfiguration, + eEthereumNetwork, + eAvalancheNetwork, + IAvalancheConfiguration, +} from '../../helpers/types'; import { CommonsConfig } from './commons'; import { @@ -9,7 +14,7 @@ import { strategyUSDT, strategyAAVE, strategyWBTC, - strategyAVAX, + strategyWAVAX, } from './reservesConfigs'; // ---------------- @@ -23,30 +28,29 @@ export const AvalancheConfig: IAvalancheConfiguration = { ReservesConfig: { WETH: strategyWETH, DAI: strategyDAI, - USDC: strategyUSDC, USDT: strategyUSDT, + USDC: strategyUSDC, AAVE: strategyAAVE, WBTC: strategyWBTC, - AVAX: strategyAVAX, + WAVAX: strategyWAVAX, }, ReserveAssets: { - [eAvalancheNetwork.avalanche]: { // TODO: Check this - WETH: '0xf20d962a6c8f70c731bd838a3a388D7d48fA6e15', - // DAI: '0xbA7dEebBFC5fA1100Fb055a87773e1E99Cd3507a', - // USDC: '', // TODO: Not yet deployed by Circle - USDT: '0xde3A24028580884448a5397872046a019649b084', - // AAVE: '0x8cE2Dee54bB9921a2AE0A63dBb2DF8eD88B91dD9', // TODO: What we are going to do? - WBTC: '0x408D4cD0ADb7ceBd1F1A1C33A0Ba2098E1295bAB', - // AVAX: '' // TODO: Use WAVAX? + [eAvalancheNetwork.avalanche]: { + WETH: '0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab', + DAI: '0xd586e7f844cea2f87f50152665bcbc2c279d8d70', + USDT: '0xc7198437980c041c805a1edcba50c1ce5db95118', + USDC: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664', + AAVE: '0x63a72806098bd3d9520cc43356dd78afe5d386d9', + WBTC: '0x50b7545627a5162f82a992c33b87adc75187b218', + WAVAX: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', }, [eAvalancheNetwork.fuji]: { WETH: '0x9668f5f55f2712Dd2dfa316256609b516292D554', // MintableERC20 token - // DAI: '0x51BC2DfB9D12d9dB50C855A5330fBA0faF761D15', - // USDC: '0x7804D7f48f6E5749AF5c8Fa87b20702C34a7f5c2', + DAI: '0x51BC2DfB9D12d9dB50C855A5330fBA0faF761D15', USDT: '0x02823f9B469960Bb3b1de0B3746D4b95B7E35543', // MintableERC20 token - // AAVE: '0x47183584aCbc1C45608d7B61cce1C562Ee180E7e', + AAVE: '0x47183584aCbc1C45608d7B61cce1C562Ee180E7e', WBTC: '0x9C1DCacB57ADa1E9e2D3a8280B7cfC7EB936186F', // MintableERC20 token - AVAX: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c' // Official WAVAX + WAVAX: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', // Official WAVAX }, }, }; diff --git a/markets/avalanche/rateStrategies.ts b/markets/avalanche/rateStrategies.ts index 4a7125dd..18a16632 100644 --- a/markets/avalanche/rateStrategies.ts +++ b/markets/avalanche/rateStrategies.ts @@ -2,104 +2,22 @@ import BigNumber from 'bignumber.js'; import { oneRay } from '../../helpers/constants'; import { IInterestRateStrategyParams } from '../../helpers/types'; -// BUSD SUSD -export const rateStrategyStableOne: IInterestRateStrategyParams = { - name: "rateStrategyStableOne", - optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(), +export const rateStrategyVolatileOne: IInterestRateStrategyParams = { + name: 'rateStrategyVolatileOne', + optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(), baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(), + variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), + variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), stableRateSlope1: '0', stableRateSlope2: '0', }; -// DAI TUSD -export const rateStrategyStableTwo: IInterestRateStrategyParams = { - name: "rateStrategyStableTwo", +export const rateStrategyStableOne: IInterestRateStrategyParams = { + name: 'rateStrategyStableOne', optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(), baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), variableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(), stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(), stableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(), -} - -// USDC USDT -export const rateStrategyStableThree: IInterestRateStrategyParams = { - name: "rateStrategyStableThree", - optimalUtilizationRate: new BigNumber(0.9).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(), -} - -// WETH -export const rateStrategyWETH: IInterestRateStrategyParams = { - name: "rateStrategyWETH", - optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(), -} - -// AAVE -export const rateStrategyAAVE: IInterestRateStrategyParams = { - name: "rateStrategyAAVE", - optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: '0', - variableRateSlope1: '0', - variableRateSlope2: '0', - stableRateSlope1: '0', - stableRateSlope2: '0', -} - -// BAT ENJ LINK MANA MKR REN YFI ZRX -export const rateStrategyVolatileOne: IInterestRateStrategyParams = { - name: "rateStrategyVolatileOne", - optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), -} - -// KNC WBTC -export const rateStrategyVolatileTwo: IInterestRateStrategyParams = { - name: "rateStrategyVolatileTwo", - optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), -} - -// SNX -export const rateStrategyVolatileThree: IInterestRateStrategyParams = { - name: "rateStrategyVolatileThree", - optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(), - variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), - stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(), - stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), -} - - -export const rateStrategyVolatileFour: IInterestRateStrategyParams = { - name: "rateStrategyVolatileFour", - optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(), - baseVariableBorrowRate: '0', - variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(), - variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(), - stableRateSlope1: '0', - stableRateSlope2: '0', -} - - - +}; diff --git a/markets/avalanche/reservesConfigs.ts b/markets/avalanche/reservesConfigs.ts index 136fe54c..2599754c 100644 --- a/markets/avalanche/reservesConfigs.ts +++ b/markets/avalanche/reservesConfigs.ts @@ -1,87 +1,8 @@ import { eContractid, IReserveParams } from '../../helpers/types'; -import { - rateStrategyStableTwo, - rateStrategyStableThree, - rateStrategyWETH, - rateStrategyAAVE, - rateStrategyVolatileOne, - rateStrategyVolatileTwo, -} from './rateStrategies'; +import { rateStrategyStableOne, rateStrategyVolatileOne } from './rateStrategies'; -export const strategyDAI: IReserveParams = { - strategy: rateStrategyStableTwo, - baseLTVAsCollateral: '7500', - liquidationThreshold: '8000', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - aTokenImpl: eContractid.AToken, - reserveFactor: '1000' -}; - -export const strategyUSDC: IReserveParams = { - strategy: rateStrategyStableThree, - baseLTVAsCollateral: '8000', - liquidationThreshold: '8500', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '6', - aTokenImpl: eContractid.AToken, - reserveFactor: '1000' -}; - -export const strategyUSDT: IReserveParams = { - strategy: rateStrategyStableThree, - baseLTVAsCollateral: '0', - liquidationThreshold: '0', - liquidationBonus: '0', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '6', - aTokenImpl: eContractid.AToken, - reserveFactor: '1000' -}; - -export const strategyAAVE: IReserveParams = { - strategy: rateStrategyAAVE, - baseLTVAsCollateral: '5000', - liquidationThreshold: '6500', - liquidationBonus: '11000', - borrowingEnabled: false, - stableBorrowRateEnabled: false, - reserveDecimals: '18', - aTokenImpl: eContractid.AToken, - reserveFactor: '0' -}; - -export const strategyWETH: IReserveParams = { - strategy: rateStrategyWETH, - baseLTVAsCollateral: '8000', - liquidationThreshold: '8250', - liquidationBonus: '10500', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '18', - aTokenImpl: eContractid.AToken, - reserveFactor: '1000' -}; - -export const strategyWBTC: IReserveParams = { - strategy: rateStrategyVolatileTwo, - baseLTVAsCollateral: '7000', - liquidationThreshold: '7500', - liquidationBonus: '11000', - borrowingEnabled: true, - stableBorrowRateEnabled: true, - reserveDecimals: '8', - aTokenImpl: eContractid.AToken, - reserveFactor: '2000' -}; - -export const strategyAVAX: IReserveParams = { +export const strategyWAVAX: IReserveParams = { strategy: rateStrategyVolatileOne, baseLTVAsCollateral: '5000', liquidationThreshold: '6500', @@ -92,3 +13,75 @@ export const strategyAVAX: IReserveParams = { aTokenImpl: eContractid.AToken, reserveFactor: '2000', }; + +export const strategyWETH: IReserveParams = { + strategy: rateStrategyVolatileOne, + baseLTVAsCollateral: '8000', + liquidationThreshold: '8250', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + aTokenImpl: eContractid.AToken, + reserveFactor: '1000', +}; + +export const strategyWBTC: IReserveParams = { + strategy: rateStrategyVolatileOne, + baseLTVAsCollateral: '0', + liquidationThreshold: '0', + liquidationBonus: '0', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '8', + aTokenImpl: eContractid.AToken, + reserveFactor: '0', +}; + +export const strategyAAVE: IReserveParams = { + strategy: rateStrategyVolatileOne, + baseLTVAsCollateral: '5000', + liquidationThreshold: '6500', + liquidationBonus: '11000', + borrowingEnabled: false, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + aTokenImpl: eContractid.AToken, + reserveFactor: '0', +}; + +export const strategyDAI: IReserveParams = { + strategy: rateStrategyStableOne, + baseLTVAsCollateral: '0', + liquidationThreshold: '0', + liquidationBonus: '0', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '18', + aTokenImpl: eContractid.AToken, + reserveFactor: '0', +}; + +export const strategyUSDT: IReserveParams = { + strategy: rateStrategyStableOne, + baseLTVAsCollateral: '0', + liquidationThreshold: '0', + liquidationBonus: '0', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '6', + aTokenImpl: eContractid.AToken, + reserveFactor: '0', +}; + +export const strategyUSDC: IReserveParams = { + strategy: rateStrategyStableOne, + baseLTVAsCollateral: '0', + liquidationThreshold: '0', + liquidationBonus: '0', + borrowingEnabled: true, + stableBorrowRateEnabled: false, + reserveDecimals: '6', + aTokenImpl: eContractid.AToken, + reserveFactor: '0', +}; diff --git a/test-suites/test-aave/__setup.spec.ts b/test-suites/test-aave/__setup.spec.ts index afaf711b..cc9bee13 100644 --- a/test-suites/test-aave/__setup.spec.ts +++ b/test-suites/test-aave/__setup.spec.ts @@ -194,7 +194,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => { USD: USD_ADDRESS, STAKE: mockTokens.STAKE.address, xSUSHI: mockTokens.xSUSHI.address, - AVAX: mockTokens.AVAX.address + WAVAX: mockTokens.WAVAX.address, }, fallbackOracle );