diff --git a/helpers/types.ts b/helpers/types.ts index f5fe2250..81971768 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -303,6 +303,11 @@ export type iAaveArcPoolAssets = Pick, 'USDC' | 'WBTC' | export type iAaveRealTPoolAssets = Pick< iAssetsWithoutUSD, + | 'DAI' + | 'USDC' + | 'USDT' + | 'WBTC' + | 'WETH' | 'REALTOKEN-S-13895-SARATOGA-ST-DETROIT-MI' | 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI' | 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M' diff --git a/markets/aave-arc/index.ts b/markets/aave-arc/index.ts index 8129f2ac..b5355aaa 100644 --- a/markets/aave-arc/index.ts +++ b/markets/aave-arc/index.ts @@ -19,7 +19,7 @@ export const AaveArcConfig: IAaveArcConfiguration = { ProviderId: 1, LendingPoolImpl: eContractid.PermissionedLendingPool, ReservesConfig: { - USDC: strategyUSDC, + USDC: strategyUSDC, WBTC: strategyWBTC, WETH: strategyWETH, AAVE: strategyAAVE diff --git a/markets/realT/commons.ts b/markets/realT/commons.ts index a51fd63f..c1366ab2 100644 --- a/markets/realT/commons.ts +++ b/markets/realT/commons.ts @@ -17,8 +17,8 @@ export const CommonsConfig: ICommonConfiguration = { ATokenNamePrefix: 'Aave RealT market', StableDebtTokenNamePrefix: 'Aave RealT Market stable debt', VariableDebtTokenNamePrefix: 'Aave RealT Market variable debt', - SymbolPrefix: '', - ProviderId: 0, // Overridden in index.ts + SymbolPrefix: 'rt', + ProviderId: 5, // Overridden in index.ts OracleQuoteCurrency: 'ETH', OracleQuoteUnit: oneEther.toString(), ProtocolGlobalParams: { @@ -44,31 +44,46 @@ export const CommonsConfig: ICommonConfiguration = { 'REALTOKEN-S-13895-SARATOGA-ST-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, - 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': { + 'REALTOKEN-S-15796-HARTWELL-ST-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, - 'REALTOKEN-S-15796-HARTWELL-ST-DETROIT-MI': { - borrowRate: oneRay.multipliedBy(0.03).toFixed(), - }, - 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': { + 'REALTOKEN-S-19163-MITCHELL-ST-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, - 'REALTOKEN-S-19163-MITCHELL-ST-DETROIT-MI': { + 'REALTOKEN-S-19311-KEYSTONE-ST-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, + 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, - 'REALTOKEN-S-19311-KEYSTONE-ST-DETROIT-MI': { + 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + DAI: { + borrowRate: oneRay.multipliedBy(0.039).toFixed(), + }, + WETH: { + borrowRate: oneRay.multipliedBy(0.03).toFixed(), + }, + USDC: { + borrowRate: oneRay.multipliedBy(0.039).toFixed(), + }, + USDT: { + borrowRate: oneRay.multipliedBy(0.035).toFixed(), + }, + WBTC: { borrowRate: oneRay.multipliedBy(0.03).toFixed(), }, }, @@ -194,15 +209,20 @@ export const CommonsConfig: ICommonConfiguration = { [eEthereumNetwork.buidlerevm]: {}, [eEthereumNetwork.kovan]: { 'REALTOKEN-S-13895-SARATOGA-ST-DETROIT-MI': '0xCd47A6DaC96a449332976e50f4942FF81cDfd26C', - 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': '0x84D51b1fC4f9c1230307071463Dc80408Ae15f24', - 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': '0xd02E3b9E37fC9A1CD3141bEa58ACa013517d72BF', 'REALTOKEN-S-15796-HARTWELL-ST-DETROIT-MI': '0x215D2f4C9512E2d62C33362e53067b9Bdd68428d', - 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': '0xc08460763599BDAb216812Bef5d89562Dc2eF07d', - 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': '0xF119107D3eCfF3641e83509a13D7d8Cd028F5a93', + 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': '0xd02E3b9E37fC9A1CD3141bEa58ACa013517d72BF', 'REALTOKEN-S-19163-MITCHELL-ST-DETROIT-MI': '0x1bd4077e20Fe045b3A5266C7813cbbAc9ffccBDD', - 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': '0x75471312599D7444F5782978e3D05d78565ce77A', - 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': '0xBec14F5E869F50e6971bebb3332417644a47485B', + 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': '0xF119107D3eCfF3641e83509a13D7d8Cd028F5a93', 'REALTOKEN-S-19311-KEYSTONE-ST-DETROIT-MI': '0xd9cB01869e215DcB3906a0dD43a4198a5A79f07a', + 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': '0x75471312599D7444F5782978e3D05d78565ce77A', + 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': '0x84D51b1fC4f9c1230307071463Dc80408Ae15f24', + 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': '0xBec14F5E869F50e6971bebb3332417644a47485B', + 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': '0xc08460763599BDAb216812Bef5d89562Dc2eF07d', + DAI: '0x22B58f1EbEDfCA50feF632bD73368b2FdA96D541', + USD: '0x9326BFA02ADD2366b30bacB125260Af641031331', + USDC: '0x64EaC61A2DFda2c3Fa04eED49AA33D021AeC8838', + USDT: '0x0bF499444525a23E7Bb61997539725cA2e928138', + WBTC: '0xF7904a295A029a3aBDFFB6F12755974a958C7C25', }, [eEthereumNetwork.ropsten]: {}, [eEthereumNetwork.main]: {}, diff --git a/markets/realT/index.ts b/markets/realT/index.ts index 961ccf1f..9dba273e 100644 --- a/markets/realT/index.ts +++ b/markets/realT/index.ts @@ -1,6 +1,5 @@ -import { IAaveRealTConfiguration } from './../../helpers/types'; import { ZERO_ADDRESS } from '../../helpers/constants'; -import { IAaveArcConfiguration, eEthereumNetwork, eContractid } from '../../helpers/types'; +import { IAaveRealTConfiguration, eEthereumNetwork, eContractid } from '../../helpers/types'; import { CommonsConfig } from './commons'; import { @@ -14,28 +13,38 @@ import { strategy4380Beaconsfield, strategy4680Buckingham, strategy9717Everts, + strategyDAI, + strategyUSDC, + strategyUSDT, + strategyWBTC, + strategyWETH, } from './reservesConfigs'; // ---------------- // POOL--SPECIFIC PARAMS // ---------------- -export const AaveArcConfig: IAaveRealTConfiguration = { +export const RealTConfig: IAaveRealTConfiguration = { ...CommonsConfig, MarketId: 'RealT', - ProviderId: 1, + ProviderId: 5, LendingPoolImpl: eContractid.PermissionedLendingPool, ReservesConfig: { 'REALTOKEN-S-13895-SARATOGA-ST-DETROIT-MI': strategy13895Saratoga, - 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': strategy4380Beaconsfield, - 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': strategy17813Bradford, 'REALTOKEN-S-15796-HARTWELL-ST-DETROIT-MI': strategy15796Hartwell, - 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': strategy9717Everts, - 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': strategy19201Westphalia, + 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': strategy17813Bradford, 'REALTOKEN-S-19163-MITCHELL-ST-DETROIT-MI': strategy19163Mitchell, - 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': strategy4061Grnd, - 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': strategy4680Buckingham, + 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': strategy19201Westphalia, 'REALTOKEN-S-19311-KEYSTONE-ST-DETROIT-MI': strategy19311Keystone, + 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': strategy4061Grnd, + 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': strategy4380Beaconsfield, + 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': strategy4680Buckingham, + 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': strategy9717Everts, + DAI: strategyDAI, + USDC: strategyUSDC, + USDT: strategyUSDT, + WBTC: strategyWBTC, + WETH: strategyWETH, }, ReserveAssets: { [eEthereumNetwork.buidlerevm]: {}, @@ -43,15 +52,20 @@ export const AaveArcConfig: IAaveRealTConfiguration = { [eEthereumNetwork.coverage]: {}, [eEthereumNetwork.kovan]: { 'REALTOKEN-S-13895-SARATOGA-ST-DETROIT-MI': '0x6F442Da588232DC57Bf0096E8dE48D6961D5CC83', - 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': '0x96700Ffae33c651bC329c3f3fbFE56e1f291f117', - 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': '0x499A6c19F5537dd6005E2B5c6E1263103f558Ba4', 'REALTOKEN-S-15796-HARTWELL-ST-DETROIT-MI': '0xB3D3C1bBcEf737204AADb4fA6D90e974bc262197', - 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': '0x73BdE888664DF8DDfD156B52e6999EEaBAB57C94', - 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': '0x830B0e9a5ecf36D0A886D21e1C20043cD2d16515', + 'REALTOKEN-S-17813-BRADFORD-ST-DETROIT-M': '0x499A6c19F5537dd6005E2B5c6E1263103f558Ba4', 'REALTOKEN-S-19163-MITCHELL-ST-DETROIT-MI': '0x4Cc53Ee5ef306a95d407321d4B4acc30814C04ee', - 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': '0xd9e89bFebAe447B42C1Fa85C590716eC8820f737', - 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': '0xeFe82D6baF0dB71f92889eB9d00721bD49121316', + 'REALTOKEN-S-19201-WESTPHALIA-ST-DETROIT-MI': '0x830B0e9a5ecf36D0A886D21e1C20043cD2d16515', 'REALTOKEN-S-19311-KEYSTONE-ST-DETROIT-MI': '0x8a9F904B4EaD6a97F3aB304d0D2196f5c602c807', + 'REALTOKEN-S-4061-GRAND-ST-DETROIT-M': '0xd9e89bFebAe447B42C1Fa85C590716eC8820f737', + 'REALTOKEN-S-4380-BEACONSFIELD-ST-DETROIT-MI': '0x96700Ffae33c651bC329c3f3fbFE56e1f291f117', + 'REALTOKEN-S-4680-BUCKINGHAM-AVE-DETROIT-MI': '0xeFe82D6baF0dB71f92889eB9d00721bD49121316', + 'REALTOKEN-S-9717-EVERTS-ST-DETROIT-MI': '0x73BdE888664DF8DDfD156B52e6999EEaBAB57C94', + DAI: '0xFf795577d9AC8bD7D90Ee22b6C1703490b6512FD', + USDC: '0xe22da380ee6B445bb8273C81944ADEB6E8450422', + USDT: '0x13512979ADE267AB5100878E2e0f485B568328a4', + WBTC: '0xD1B98B6607330172f1D991521145A22BCe793277', + WETH: '0xd0a1e359811322d97991e03f863a0c30c2cf029c', }, [eEthereumNetwork.ropsten]: {}, [eEthereumNetwork.main]: {}, @@ -59,4 +73,4 @@ export const AaveArcConfig: IAaveRealTConfiguration = { }, }; -export default AaveArcConfig; +export default RealTConfig; diff --git a/markets/realT/rateStrategies.ts b/markets/realT/rateStrategies.ts index 4163981e..f0f19972 100644 --- a/markets/realT/rateStrategies.ts +++ b/markets/realT/rateStrategies.ts @@ -2,7 +2,6 @@ import BigNumber from 'bignumber.js'; import { oneRay } from '../../helpers/constants'; import { IInterestRateStrategyParams } from '../../helpers/types'; - // RealT Property strategy export const rateStrategyProperty: IInterestRateStrategyParams = { name: "rateStrategyStable", @@ -12,4 +11,48 @@ export const rateStrategyProperty: IInterestRateStrategyParams = { variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(), stableRateSlope1: '0', stableRateSlope2: '0', +} + +// USDC USDT +export const rateStrategyStable: IInterestRateStrategyParams = { + name: "rateStrategyStable", + 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(), +} + +// DAI +export const rateStrategyStableTwo: IInterestRateStrategyParams = { + name: "rateStrategyStableTwo", + 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(), +} + +// 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(), +} + +// WBTC +export const rateStrategyWBTC: IInterestRateStrategyParams = { + name: "rateStrategyWBTC", + 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(), } \ No newline at end of file diff --git a/markets/realT/reservesConfigs.ts b/markets/realT/reservesConfigs.ts index 8d986713..9f25512b 100644 --- a/markets/realT/reservesConfigs.ts +++ b/markets/realT/reservesConfigs.ts @@ -1,6 +1,12 @@ import { eContractid, IReserveParams } from '../../helpers/types'; -import { rateStrategyProperty } from './rateStrategies'; +import { + rateStrategyProperty, + rateStrategyStable, + rateStrategyStableTwo, + rateStrategyWBTC, + rateStrategyWETH, +} from './rateStrategies'; export const strategy13895Saratoga: IReserveParams = { strategy: rateStrategyProperty, @@ -140,4 +146,70 @@ export const strategy19311Keystone: IReserveParams = { stableDebtTokenImpl: eContractid.PermissionedStableDebtToken, variableDebtTokenImpl: eContractid.PermissionedVariableDebtToken, reserveFactor: '1000', -}; \ No newline at end of file +}; + +export const strategyUSDC: IReserveParams = { + strategy: rateStrategyStable, + baseLTVAsCollateral: '8000', + liquidationThreshold: '8500', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '6', + aTokenImpl: eContractid.AToken, + stableDebtTokenImpl: eContractid.PermissionedStableDebtToken, + variableDebtTokenImpl: eContractid.PermissionedVariableDebtToken, + reserveFactor: '1000', +}; + +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 strategyUSDT: IReserveParams = { + strategy: rateStrategyStable, + baseLTVAsCollateral: '0', + liquidationThreshold: '0', + liquidationBonus: '0', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '6', + aTokenImpl: eContractid.AToken, + reserveFactor: '1000', +}; + +export const strategyWETH: IReserveParams = { + strategy: rateStrategyWETH, + baseLTVAsCollateral: '8000', + liquidationThreshold: '8250', + liquidationBonus: '10500', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '18', + aTokenImpl: eContractid.AToken, + stableDebtTokenImpl: eContractid.PermissionedStableDebtToken, + variableDebtTokenImpl: eContractid.PermissionedVariableDebtToken, + reserveFactor: '1000', +}; + +export const strategyWBTC: IReserveParams = { + strategy: rateStrategyWBTC, + baseLTVAsCollateral: '7000', + liquidationThreshold: '7500', + liquidationBonus: '11000', + borrowingEnabled: true, + stableBorrowRateEnabled: true, + reserveDecimals: '8', + aTokenImpl: eContractid.AToken, + stableDebtTokenImpl: eContractid.PermissionedStableDebtToken, + variableDebtTokenImpl: eContractid.PermissionedVariableDebtToken, + reserveFactor: '2000', +};