mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	WIP Config boilerplate
This commit is contained in:
		
							parent
							
								
									32620e5a57
								
							
						
					
					
						commit
						4d96f57539
					
				| 
						 | 
				
			
			@ -5,7 +5,7 @@ import {usePlugin} from '@nomiclabs/buidler/config';
 | 
			
		|||
// @ts-ignore
 | 
			
		||||
import {accounts} from './test-wallets.js';
 | 
			
		||||
import {eEthereumNetwork} from './helpers/types';
 | 
			
		||||
import {loadConfig} from './config/loadConfig';
 | 
			
		||||
import {loadConfig} from './helpers/config';
 | 
			
		||||
 | 
			
		||||
usePlugin('@nomiclabs/buidler-ethers');
 | 
			
		||||
usePlugin('buidler-typechain');
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										257
									
								
								config/aave.ts
									
									
									
									
									
								
							
							
						
						
									
										257
									
								
								config/aave.ts
									
									
									
									
									
								
							| 
						 | 
				
			
			@ -1,3 +1,258 @@
 | 
			
		|||
export default {
 | 
			
		||||
import {IAaveConfiguration} from '../helpers/types';
 | 
			
		||||
import BigNumber from 'bignumber.js';
 | 
			
		||||
import {oneRay} from '../helpers/constants';
 | 
			
		||||
import {CommonPoolConfiguration} from './default';
 | 
			
		||||
 | 
			
		||||
// ----------------
 | 
			
		||||
// POOL--SPECIFIC PARAMS
 | 
			
		||||
// ----------------
 | 
			
		||||
 | 
			
		||||
const AaveConfig: IAaveConfiguration = {
 | 
			
		||||
  ConfigName: 'Aave',
 | 
			
		||||
  ProviderId: 1,
 | 
			
		||||
  ReserveSymbols: [
 | 
			
		||||
    'ETH',
 | 
			
		||||
    'DAI',
 | 
			
		||||
    'LEND',
 | 
			
		||||
    'TUSD',
 | 
			
		||||
    'BAT',
 | 
			
		||||
    'USDC',
 | 
			
		||||
    'USDT',
 | 
			
		||||
    'SUSD',
 | 
			
		||||
    'ZRX',
 | 
			
		||||
    'MKR',
 | 
			
		||||
    'WBTC',
 | 
			
		||||
    'LINK',
 | 
			
		||||
    'KNC',
 | 
			
		||||
    'MANA',
 | 
			
		||||
    'REP',
 | 
			
		||||
    'SNX',
 | 
			
		||||
    'BUSD',
 | 
			
		||||
  ],
 | 
			
		||||
  ...CommonPoolConfiguration,
 | 
			
		||||
  ReservesConfig: {
 | 
			
		||||
    DAI: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.05).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '7500',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    TUSD: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '7500',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    USDC: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '7500',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '6',
 | 
			
		||||
    },
 | 
			
		||||
    USDT: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '6',
 | 
			
		||||
    },
 | 
			
		||||
    SUSD: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    LEND: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    BAT: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    WETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '7500',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    LINK: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6500',
 | 
			
		||||
      liquidationThreshold: '7000',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    WBTC: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '8',
 | 
			
		||||
    },
 | 
			
		||||
    KNC: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    REP: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    MKR: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    MANA: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    ZRX: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6000',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: true,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    SNX: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.03).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.12).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '6500',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    BUSD: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default AaveConfig;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,230 @@
 | 
			
		|||
export default {
 | 
			
		||||
  ConfigName: 'Default',
 | 
			
		||||
import {oneEther, MOCK_USD_PRICE_IN_WEI, oneRay, RAY} from '../helpers/constants';
 | 
			
		||||
import BigNumber from 'bignumber.js';
 | 
			
		||||
import {ICommonConfiguration, EthereumNetwork} from '../helpers/types';
 | 
			
		||||
 | 
			
		||||
const MOCK_CHAINLINK_AGGREGATORS_PRICES = {
 | 
			
		||||
  DAI: oneEther.multipliedBy('0.00369068412860').toFixed(),
 | 
			
		||||
  TUSD: oneEther.multipliedBy('0.00364714136416').toFixed(),
 | 
			
		||||
  USDC: oneEther.multipliedBy('0.00367714136416').toFixed(),
 | 
			
		||||
  LEND: oneEther.multipliedBy('0.00003620948469').toFixed(),
 | 
			
		||||
  BAT: oneEther.multipliedBy('0.00137893825230').toFixed(),
 | 
			
		||||
  USDT: oneEther.multipliedBy('0.00369068412860').toFixed(),
 | 
			
		||||
  SUSD: oneEther.multipliedBy('0.00364714136416').toFixed(),
 | 
			
		||||
  MKR: oneEther.multipliedBy('2.508581').toFixed(),
 | 
			
		||||
  REP: oneEther.multipliedBy('0.048235').toFixed(),
 | 
			
		||||
  ZRX: oneEther.multipliedBy('0.001151').toFixed(),
 | 
			
		||||
  WBTC: oneEther.multipliedBy('47.332685').toFixed(),
 | 
			
		||||
  LINK: oneEther.multipliedBy('0.009955').toFixed(),
 | 
			
		||||
  KNC: oneEther.multipliedBy('0.001072').toFixed(),
 | 
			
		||||
  MANA: oneEther.multipliedBy('0.000158').toFixed(),
 | 
			
		||||
  SNX: oneEther.multipliedBy('0.00442616').toFixed(),
 | 
			
		||||
  BUSD: oneEther.multipliedBy('0.00736484').toFixed(),
 | 
			
		||||
  WETH: oneEther.toFixed(),
 | 
			
		||||
  USD: MOCK_USD_PRICE_IN_WEI,
 | 
			
		||||
  UNI_DAI_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
  UNI_USDC_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
  UNI_SETH_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
  UNI_LEND_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
  UNI_LINK_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
  UNI_MKR_ETH: oneEther.multipliedBy('2.1').toFixed(),
 | 
			
		||||
};
 | 
			
		||||
// ----------------
 | 
			
		||||
// PROTOCOL GLOBAL PARAMS
 | 
			
		||||
// ----------------
 | 
			
		||||
 | 
			
		||||
export const CommonPoolConfiguration = {
 | 
			
		||||
  ProtocolGlobalParams: {
 | 
			
		||||
    OptimalUtilizationRate: new BigNumber(0.8).times(RAY),
 | 
			
		||||
    ExcessUtilizationRate: new BigNumber(0.2).times(RAY),
 | 
			
		||||
    ApprovalAmountLendingPoolCore: '1000000000000000000000000000',
 | 
			
		||||
    TokenDistributorPercentageBase: '10000',
 | 
			
		||||
    MockUsdPriceInWei: '5848466240000000',
 | 
			
		||||
    EthereumAddress: '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE',
 | 
			
		||||
    UsdAddress: '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96',
 | 
			
		||||
    NilAddress: '0x0000000000000000000000000000000000000000',
 | 
			
		||||
    OneAddress: '0x0000000000000000000000000000000000000001',
 | 
			
		||||
    AaveReferral: '0',
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  // ----------------
 | 
			
		||||
  // COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS
 | 
			
		||||
  // ----------------
 | 
			
		||||
 | 
			
		||||
  Mocks: {
 | 
			
		||||
    ChainlinkAggregatorPrices: {
 | 
			
		||||
      ...MOCK_CHAINLINK_AGGREGATORS_PRICES,
 | 
			
		||||
    },
 | 
			
		||||
    AllAssetsInitialPrices: {
 | 
			
		||||
      ...MOCK_CHAINLINK_AGGREGATORS_PRICES,
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  LendingRateOracleRatesCommon: {
 | 
			
		||||
    WETH: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    DAI: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.039).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    TUSD: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.035).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    USDC: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.039).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    SUSD: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.035).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    USDT: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.035).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    BAT: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    LEND: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    LINK: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    KNC: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    REP: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    MKR: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    MANA: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    WBTC: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    ZRX: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    SNX: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.03).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
    BUSD: {
 | 
			
		||||
      borrowRate: oneRay.multipliedBy(0.05).toFixed(),
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  // ----------------
 | 
			
		||||
  // COMMON PROTOCOL ADDRESSES ACROSS POOLS
 | 
			
		||||
  // ----------------
 | 
			
		||||
 | 
			
		||||
  ProviderRegistry: {
 | 
			
		||||
    [EthereumNetwork.kovan]: '0xcd9Dae41Cc8b7433c045D3D7C4C555315EF0DDDE',
 | 
			
		||||
    [EthereumNetwork.ropsten]: '0x84D3638AF869cA413702192E5AB9481C083A216a',
 | 
			
		||||
    [EthereumNetwork.main]: '0xd09F34960C37dA3a8602F0847CE5ac8f7B393d99',
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  LendingRateOracle: {
 | 
			
		||||
    [EthereumNetwork.kovan]: '0xdcde9bb6a49e37fa433990832ab541ae2d4feb4a',
 | 
			
		||||
    [EthereumNetwork.ropsten]: '0x05dcca805a6562c1bdd0423768754acb6993241b',
 | 
			
		||||
    [EthereumNetwork.main]: '0x4d728a4496e4de35f218d5a214366bde3a62b51c',
 | 
			
		||||
  },
 | 
			
		||||
  TokenDistributor: {
 | 
			
		||||
    [EthereumNetwork.kovan]: '0x971efe90088f21dc6a36f610ffed77fc19710708',
 | 
			
		||||
    [EthereumNetwork.ropsten]: '0xeba2ea67942b8250d870b12750b594696d02fc9c',
 | 
			
		||||
    [EthereumNetwork.main]: '0xe3d9988f676457123c5fd01297605efdd0cba1ae',
 | 
			
		||||
  },
 | 
			
		||||
  ChainlinkProxyPriceProvider: {
 | 
			
		||||
    [EthereumNetwork.kovan]: '0x276C4793F2EE3D5Bf18C5b879529dD4270BA4814',
 | 
			
		||||
    [EthereumNetwork.ropsten]: '0x657372A559c30d236F011239fF9fbB6D76718271',
 | 
			
		||||
    [EthereumNetwork.main]: '0x76B47460d7F7c5222cFb6b6A75615ab10895DDe4',
 | 
			
		||||
  },
 | 
			
		||||
  FallbackOracle: {
 | 
			
		||||
    [EthereumNetwork.kovan]: '0x50913E8E1c650E790F8a1E741FF9B1B1bB251dfe',
 | 
			
		||||
    [EthereumNetwork.ropsten]: '0xAD1a978cdbb8175b2eaeC47B01404f8AEC5f4F0d',
 | 
			
		||||
    [EthereumNetwork.main]: '0xf67a8b0e3e0ee303422f78b4c5b8da60df80a59c',
 | 
			
		||||
  },
 | 
			
		||||
  ChainlinkAggregator: {
 | 
			
		||||
    [EthereumNetwork.kovan]: {
 | 
			
		||||
      DAI: '0x6F47077D3B6645Cb6fb7A29D280277EC1e5fFD90',
 | 
			
		||||
      TUSD: '0x02424c54D78D48179Fd12ebFfB11c16f9CA984Ad',
 | 
			
		||||
      USDC: '0x672c1C0d1130912D83664011E7960a42E8cA05D5',
 | 
			
		||||
      USDT: '0xCC833A6522721B3252e7578c5BCAF65738B75Fc3',
 | 
			
		||||
      SUSD: '0xa353F8b083F7575cfec443b5ad585D42f652E9F7',
 | 
			
		||||
      LEND: '0xdce38940264dfbc01ad1486c21764948e511947e',
 | 
			
		||||
      BAT: '0x2c8d01771CCDca47c103194C5860dbEA2fE61626',
 | 
			
		||||
      REP: '0x09F4A94F44c29d4967C761bBdB89f5bD3E2c09E6',
 | 
			
		||||
      MKR: '0x14D7714eC44F44ECD0098B39e642b246fB2c38D0',
 | 
			
		||||
      LINK: '0xf1e71Afd1459C05A2F898502C4025be755aa844A',
 | 
			
		||||
      KNC: '0x0893AaF58f62279909F9F6FF2E5642f53342e77F',
 | 
			
		||||
      WBTC: '0x33E5085E92f5b53E9A193E28ad2f76bF210550BB',
 | 
			
		||||
      MANA: '0x3c30c5c415B2410326297F0f65f5Cbb32f3aefCc',
 | 
			
		||||
      ZRX: '0x2636cfdDB457a6C7A7D60A439F1E5a5a0C3d9c65',
 | 
			
		||||
      SNX: '0x775E76cca1B5bc903c9a8C6f77416A35E5744664',
 | 
			
		||||
      BUSD: '0x63294A05C9a81b1A40CAD3f2ff30617111630393',
 | 
			
		||||
      USD: '0xD21912D8762078598283B14cbA40Cb4bFCb87581',
 | 
			
		||||
      UNI_DAI_ETH: '0x0338C40020Bf886c11406115fD1ba205Ef1D9Ff9',
 | 
			
		||||
      UNI_USDC_ETH: '0x7f5E5D34591e9a70D187BBA94260C30B92aC0961',
 | 
			
		||||
      UNI_SETH_ETH: '0xc5F1eA001c1570783b3af418fa775237Eb129EDC',
 | 
			
		||||
      UNI_LEND_ETH: '0xB996b1a11BA0aACc4deA57f7f92d1722428f2E90',
 | 
			
		||||
      UNI_LINK_ETH: '0x267490eE9Ad21dfE839aE73A8B1c8C9A36F60d33',
 | 
			
		||||
      UNI_MKR_ETH: '0x6eBF25AB0A18B8F6243619f1AE6b94373169A069',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.ropsten]: {
 | 
			
		||||
      DAI: '0x64b8e49baded7bfb2fd5a9235b2440c0ee02971b',
 | 
			
		||||
      TUSD: '0x523ac85618df56e940534443125ef16daf785620',
 | 
			
		||||
      USDC: '0xe1480303dde539e2c241bdc527649f37c9cbef7d',
 | 
			
		||||
      USDT: '0xc08fe0c4d97ccda6b40649c6da621761b628c288',
 | 
			
		||||
      SUSD: '0xe054b4aee7ac7645642dd52f1c892ff0128c98f0',
 | 
			
		||||
      LEND: '0xf7b4834fe443d1E04D757b4b089b35F5A90F2847',
 | 
			
		||||
      BAT: '0xafd8186c962daf599f171b8600f3e19af7b52c92',
 | 
			
		||||
      REP: '0xa949ee9ba80c0f381481f2eab538bc5547a5ac67',
 | 
			
		||||
      MKR: '0x811B1f727F8F4aE899774B568d2e72916D91F392',
 | 
			
		||||
      LINK: '0xb8c99b98913bE2ca4899CdcaF33a3e519C20EeEc',
 | 
			
		||||
      KNC: '0x19d97ceb36624a31d827032d8216dd2eb15e9845',
 | 
			
		||||
      WBTC: '0x5b8B87A0abA4be247e660B0e0143bB30Cdf566AF',
 | 
			
		||||
      MANA: '0xDab909dedB72573c626481fC98CEE1152b81DEC2',
 | 
			
		||||
      ZRX: '0x1d0052e4ae5b4ae4563cbac50edc3627ca0460d7',
 | 
			
		||||
      SNX: '0xA95674a8Ed9aa9D2E445eb0024a9aa05ab44f6bf',
 | 
			
		||||
      BUSD: '0x0A32D96Ff131cd5c3E0E5AAB645BF009Eda61564',
 | 
			
		||||
      USD: '0x8468b2bDCE073A157E560AA4D9CcF6dB1DB98507',
 | 
			
		||||
      UNI_DAI_ETH: '0x16048819e3f77b7112eB033624A0bA9d33743028',
 | 
			
		||||
      UNI_USDC_ETH: '0x6952A2678D574073DB97963886c2F38CD09C8Ba3',
 | 
			
		||||
      UNI_SETH_ETH: '0x23Ee5188806BD2D31103368B0EA0259bc6706Af1',
 | 
			
		||||
      UNI_LEND_ETH: '0x43c44B27376Afedee06Bae2A003e979FC3B3Da6C',
 | 
			
		||||
      UNI_LINK_ETH: '0xb60c29714146EA3539261f599Eb30f62904108Fa',
 | 
			
		||||
      UNI_MKR_ETH: '0x594ae5421f378b8B4AF9e758C461d2A1FF990BC5',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.main]: {
 | 
			
		||||
      DAI: '0x037E8F2125bF532F3e228991e051c8A7253B642c',
 | 
			
		||||
      TUSD: '0x73ead35fd6A572EF763B13Be65a9db96f7643577',
 | 
			
		||||
      USDC: '0xdE54467873c3BCAA76421061036053e371721708',
 | 
			
		||||
      USDT: '0xa874fe207DF445ff19E7482C746C4D3fD0CB9AcE',
 | 
			
		||||
      SUSD: '0x6d626Ff97f0E89F6f983dE425dc5B24A18DE26Ea',
 | 
			
		||||
      LEND: '0x1EeaF25f2ECbcAf204ECADc8Db7B0db9DA845327',
 | 
			
		||||
      BAT: '0x9b4e2579895efa2b4765063310Dc4109a7641129',
 | 
			
		||||
      REP: '0xb8b513d9cf440C1b6f5C7142120d611C94fC220c',
 | 
			
		||||
      MKR: '0xda3d675d50ff6c555973c4f0424964e1f6a4e7d3',
 | 
			
		||||
      LINK: '0xeCfA53A8bdA4F0c4dd39c55CC8deF3757aCFDD07',
 | 
			
		||||
      KNC: '0xd0e785973390fF8E77a83961efDb4F271E6B8152',
 | 
			
		||||
      WBTC: '0x0133Aa47B6197D0BA090Bf2CD96626Eb71fFd13c',
 | 
			
		||||
      MANA: '0xc89c4ed8f52Bb17314022f6c0dCB26210C905C97',
 | 
			
		||||
      ZRX: '0xA0F9D94f060836756FFC84Db4C78d097cA8C23E8',
 | 
			
		||||
      SNX: '0xE23d1142dE4E83C08bb048bcab54d50907390828',
 | 
			
		||||
      BUSD: '0x5d4BB541EED49D0290730b4aB332aA46bd27d888',
 | 
			
		||||
      USD: '0x59b826c214aBa7125bFA52970d97736c105Cc375',
 | 
			
		||||
      UNI_DAI_ETH: '0x1bAB293850289Bf161C5DA79ff3d1F02A950555b',
 | 
			
		||||
      UNI_USDC_ETH: '0x444315Ee92F2bb3579293C17B07194227fA99bF0',
 | 
			
		||||
      UNI_SETH_ETH: '0x517D40E49660c7705b2e99eEFA6d7B0E9Ba5BF10',
 | 
			
		||||
      UNI_LEND_ETH: '0xF4C8Db2d999b024bBB6c6022566503eD41f2AC1E',
 | 
			
		||||
      UNI_LINK_ETH: '0xE2A639Beb647d7F709ca805ABa760bBEfdbE37e3',
 | 
			
		||||
      UNI_MKR_ETH: '0xEe40a5E8F3732bE6ECDb5A90e23D0b7bF0D4a73c',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
const CommonsConfig: ICommonConfiguration = {
 | 
			
		||||
  ConfigName: 'Commons',
 | 
			
		||||
  ProviderId: 0,
 | 
			
		||||
  ReserveSymbols: [],
 | 
			
		||||
  ...CommonPoolConfiguration,
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default CommonsConfig;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,213 @@
 | 
			
		|||
export default {
 | 
			
		||||
import {EthereumNetwork, IUniswapConfiguration} from '../helpers/types';
 | 
			
		||||
import BigNumber from 'bignumber.js';
 | 
			
		||||
import {oneRay} from '../helpers/constants';
 | 
			
		||||
 | 
			
		||||
import {CommonPoolConfiguration} from './default';
 | 
			
		||||
 | 
			
		||||
// ----------------
 | 
			
		||||
// POOL--SPECIFIC PARAMS
 | 
			
		||||
// ----------------
 | 
			
		||||
 | 
			
		||||
const UniswapConfig: IUniswapConfiguration = {
 | 
			
		||||
  ConfigName: 'Uniswap',
 | 
			
		||||
  ProviderId: 2,
 | 
			
		||||
  ReserveSymbols: [
 | 
			
		||||
    'ETH',
 | 
			
		||||
    'DAI',
 | 
			
		||||
    'USDC',
 | 
			
		||||
    'USDT',
 | 
			
		||||
    'UNI_DAI_ETH',
 | 
			
		||||
    'UNI_USDC_ETH',
 | 
			
		||||
    'UNI_SETH_ETH',
 | 
			
		||||
    'UNI_LINK_ETH',
 | 
			
		||||
    'UNI_MKR_ETH',
 | 
			
		||||
    'UNI_LEND_ETH',
 | 
			
		||||
  ],
 | 
			
		||||
  ...CommonPoolConfiguration,
 | 
			
		||||
  ReservesConfig: {
 | 
			
		||||
    WETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    DAI: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    USDC: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '6',
 | 
			
		||||
    },
 | 
			
		||||
    USDT: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '-1',
 | 
			
		||||
      liquidationThreshold: '8000',
 | 
			
		||||
      liquidationBonus: '10500',
 | 
			
		||||
      borrowingEnabled: true,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '6',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_DAI_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6800',
 | 
			
		||||
      liquidationThreshold: '7300',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_USDC_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6800',
 | 
			
		||||
      liquidationThreshold: '7300',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_SETH_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '4800',
 | 
			
		||||
      liquidationThreshold: '6600',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_LEND_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '5100',
 | 
			
		||||
      liquidationThreshold: '6600',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_LINK_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '6300',
 | 
			
		||||
      liquidationThreshold: '6800',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
    UNI_MKR_ETH: {
 | 
			
		||||
      baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope1: new BigNumber(0.16).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
 | 
			
		||||
      baseLTVAsCollateral: '4800',
 | 
			
		||||
      liquidationThreshold: '6600',
 | 
			
		||||
      liquidationBonus: '11000',
 | 
			
		||||
      borrowingEnabled: false,
 | 
			
		||||
      stableBorrowRateEnabled: false,
 | 
			
		||||
      reserveDecimals: '18',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  ChainlinkAggregator: {
 | 
			
		||||
    [EthereumNetwork.kovan]: {
 | 
			
		||||
      UNI_DAI_ETH: '0x0338C40020Bf886c11406115fD1ba205Ef1D9Ff9',
 | 
			
		||||
      UNI_USDC_ETH: '0x7f5E5D34591e9a70D187BBA94260C30B92aC0961',
 | 
			
		||||
      UNI_SETH_ETH: '0xc5F1eA001c1570783b3af418fa775237Eb129EDC',
 | 
			
		||||
      UNI_LEND_ETH: '0xB996b1a11BA0aACc4deA57f7f92d1722428f2E90',
 | 
			
		||||
      UNI_LINK_ETH: '0x267490eE9Ad21dfE839aE73A8B1c8C9A36F60d33',
 | 
			
		||||
      UNI_MKR_ETH: '0x6eBF25AB0A18B8F6243619f1AE6b94373169A069',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.ropsten]: {
 | 
			
		||||
      UNI_DAI_ETH: '0x16048819e3f77b7112eB033624A0bA9d33743028',
 | 
			
		||||
      UNI_USDC_ETH: '0x6952A2678D574073DB97963886c2F38CD09C8Ba3',
 | 
			
		||||
      UNI_SETH_ETH: '0x23Ee5188806BD2D31103368B0EA0259bc6706Af1',
 | 
			
		||||
      UNI_LEND_ETH: '0x43c44B27376Afedee06Bae2A003e979FC3B3Da6C',
 | 
			
		||||
      UNI_LINK_ETH: '0xb60c29714146EA3539261f599Eb30f62904108Fa',
 | 
			
		||||
      UNI_MKR_ETH: '0x594ae5421f378b8B4AF9e758C461d2A1FF990BC5',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.main]: {
 | 
			
		||||
      UNI_DAI_ETH: '0x1bAB293850289Bf161C5DA79ff3d1F02A950555b',
 | 
			
		||||
      UNI_USDC_ETH: '0x444315Ee92F2bb3579293C17B07194227fA99bF0',
 | 
			
		||||
      UNI_SETH_ETH: '0x517D40E49660c7705b2e99eEFA6d7B0E9Ba5BF10',
 | 
			
		||||
      UNI_LEND_ETH: '0xF4C8Db2d999b024bBB6c6022566503eD41f2AC1E',
 | 
			
		||||
      UNI_LINK_ETH: '0xE2A639Beb647d7F709ca805ABa760bBEfdbE37e3',
 | 
			
		||||
      UNI_MKR_ETH: '0xEe40a5E8F3732bE6ECDb5A90e23D0b7bF0D4a73c',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
  UniAssetsAddresses: {
 | 
			
		||||
    [EthereumNetwork.kovan]: {
 | 
			
		||||
      UNI_DAI_ETH: '0x2e0086b5343101203ADeE40160ca1BD91E29fF75',
 | 
			
		||||
      UNI_USDC_ETH: '0x34eA1aB2a43ee696914fc3C0d3e517fA666B9e8D',
 | 
			
		||||
      UNI_SETH_ETH: '0xCF457d8Bb8D8f54Af1ea1B3710231e89bd6CFbfe',
 | 
			
		||||
      UNI_LEND_ETH: '0x7615cd666F867406C64E558B9CCC3883e7EC9BA8',
 | 
			
		||||
      UNI_LINK_ETH: '0xFb9AAc184e79025f936E9C4EF3047Ad4889Df4a8',
 | 
			
		||||
      UNI_MKR_ETH: '0xB31a1c30f38cD68e8177566Ef950d7bc3C81DaCF',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.ropsten]: {
 | 
			
		||||
      UNI_DAI_ETH: '0xC245A7d35E652Cae438A1FdB13E474DF53DBB81D',
 | 
			
		||||
      UNI_USDC_ETH: '0x2BD65323955D08eb600074291305881d1295c4D2',
 | 
			
		||||
      UNI_SETH_ETH: '0xed4597DCd234867d7A260AD24bAb8253F64940a5',
 | 
			
		||||
      UNI_LEND_ETH: '0xcD5DE1EDD40aBBD6efE2C306276FF56f81Bc3151',
 | 
			
		||||
      UNI_LINK_ETH: '0x8dcf3c8d4d69ca7C188c0A4cf219A1dcE1e510d7',
 | 
			
		||||
      UNI_MKR_ETH: '0xd8b7B99a9205FD0D0abFB6D7a2c13Db2681bff43',
 | 
			
		||||
    },
 | 
			
		||||
    [EthereumNetwork.main]: {
 | 
			
		||||
      UNI_DAI_ETH: '0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667',
 | 
			
		||||
      UNI_USDC_ETH: '0x97dec872013f6b5fb443861090ad931542878126',
 | 
			
		||||
      UNI_SETH_ETH: '0xe9cf7887b93150d4f2da7dfc6d502b216438f244',
 | 
			
		||||
      UNI_LEND_ETH: '0xcaa7e4656f6a2b59f5f99c745f91ab26d1210dce',
 | 
			
		||||
      UNI_LINK_ETH: '0xf173214c720f58e03e194085b1db28b50acdeead',
 | 
			
		||||
      UNI_MKR_ETH: '0x2c4bd064b998838076fa341a83d007fc2fa50957',
 | 
			
		||||
    },
 | 
			
		||||
  },
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export default UniswapConfig;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,9 +1,10 @@
 | 
			
		|||
import {IConfig} from 'config';
 | 
			
		||||
import {IAaveConfiguration, IUniswapConfiguration} from './types';
 | 
			
		||||
 | 
			
		||||
let config: IConfig;
 | 
			
		||||
let config: IAaveConfiguration | IUniswapConfiguration;
 | 
			
		||||
 | 
			
		||||
// This function swaps NODE_ENV during the 'config' library load, to load custom config files, then keeps NODE_ENV like before.
 | 
			
		||||
export const loadConfig = () => {
 | 
			
		||||
export const loadConfig = (): IAaveConfiguration | IUniswapConfiguration => {
 | 
			
		||||
  if (config) {
 | 
			
		||||
    return config;
 | 
			
		||||
  }
 | 
			
		||||
| 
						 | 
				
			
			@ -11,6 +11,9 @@ import {
 | 
			
		|||
} from './types';
 | 
			
		||||
import BigNumber from 'bignumber.js';
 | 
			
		||||
import {getParamPerPool} from './contracts-helpers';
 | 
			
		||||
import {loadConfig} from './config';
 | 
			
		||||
 | 
			
		||||
const config = loadConfig();
 | 
			
		||||
 | 
			
		||||
export const TEST_SNAPSHOT_ID = '0x1';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -31,10 +34,12 @@ export const MAX_UINT_AMOUNT =
 | 
			
		|||
// ----------------
 | 
			
		||||
// PROTOCOL GLOBAL PARAMS
 | 
			
		||||
// ----------------
 | 
			
		||||
export const OPTIMAL_UTILIZATION_RATE = new BigNumber(0.8).times(RAY);
 | 
			
		||||
export const EXCESS_UTILIZATION_RATE = new BigNumber(0.2).times(RAY);
 | 
			
		||||
export const OPTIMAL_UTILIZATION_RATE = config.ProtocolGlobalParams.OptimalUtilizationRate;
 | 
			
		||||
export const EXCESS_UTILIZATION_RATE = config.ProtocolGlobalParams.ExcessUtilizationRate;
 | 
			
		||||
export const ONE_YEAR = '31536000';
 | 
			
		||||
export const APPROVAL_AMOUNT_LENDING_POOL = '1000000000000000000000000000';
 | 
			
		||||
export const APPROVAL_AMOUNT_LENDING_POOL =
 | 
			
		||||
  config.ProtocolGlobalParams.TokenDistributorPercentageBase;
 | 
			
		||||
 | 
			
		||||
export const TOKEN_DISTRIBUTOR_PERCENTAGE_BASE = '10000';
 | 
			
		||||
export const MOCK_USD_PRICE_IN_WEI = '5848466240000000';
 | 
			
		||||
export const USD_ADDRESS = '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96';
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,8 @@
 | 
			
		|||
import BigNumber from 'bignumber.js';
 | 
			
		||||
import {MockContract} from 'ethereum-waffle';
 | 
			
		||||
import {ILendingPoolAddressesProviderRegistry} from '../types/ILendingPoolAddressesProviderRegistry';
 | 
			
		||||
import {ChainlinkProxyPriceProvider} from '../types/ChainlinkProxyPriceProvider';
 | 
			
		||||
import {IConfig} from 'config';
 | 
			
		||||
 | 
			
		||||
export enum eEthereumNetwork {
 | 
			
		||||
  buidlerevm = 'buidlerevm',
 | 
			
		||||
| 
						 | 
				
			
			@ -228,3 +231,72 @@ export enum RateMode {
 | 
			
		|||
export interface ObjectString {
 | 
			
		||||
  [key: string]: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export enum EthereumNetwork {
 | 
			
		||||
  kovan = 'kovan',
 | 
			
		||||
  ropsten = 'ropsten',
 | 
			
		||||
  development = 'development',
 | 
			
		||||
  main = 'main',
 | 
			
		||||
  coverage = 'soliditycoverage',
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IProtocolGlobalConfig {
 | 
			
		||||
  OptimalUtilizationRate: BigNumber;
 | 
			
		||||
  ExcessUtilizationRate: BigNumber;
 | 
			
		||||
  ApprovalAmountLendingPoolCore: string;
 | 
			
		||||
  TokenDistributorPercentageBase: string;
 | 
			
		||||
  MockUsdPriceInWei: string;
 | 
			
		||||
  EthereumAddress: tEthereumAddress;
 | 
			
		||||
  UsdAddress: tEthereumAddress;
 | 
			
		||||
  NilAddress: tEthereumAddress;
 | 
			
		||||
  OneAddress: tEthereumAddress;
 | 
			
		||||
  AaveReferral: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IMocksConfig {
 | 
			
		||||
  ChainlinkAggregatorPrices: any;
 | 
			
		||||
  AllAssetsInitialPrices: any;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ILendingRateOracleRatesCommon {
 | 
			
		||||
  [token: string]: ILendingRate;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IReserveConfig {
 | 
			
		||||
  [token: string]: IReserveParams;
 | 
			
		||||
}
 | 
			
		||||
export interface ILendingRate {
 | 
			
		||||
  borrowRate: string;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ICommonConfiguration {
 | 
			
		||||
  ConfigName: string;
 | 
			
		||||
  ProviderId: number;
 | 
			
		||||
  ReserveSymbols: string[];
 | 
			
		||||
  ProtocolGlobalParams: IProtocolGlobalConfig;
 | 
			
		||||
  Mocks: IMocksConfig;
 | 
			
		||||
  ProviderRegistry: iParamsPerNetwork<tEthereumAddress>;
 | 
			
		||||
  LendingRateOracleRatesCommon: ILendingRateOracleRatesCommon;
 | 
			
		||||
  LendingRateOracle: iParamsPerNetwork<tEthereumAddress>;
 | 
			
		||||
  TokenDistributor: iParamsPerNetwork<tEthereumAddress>;
 | 
			
		||||
  ChainlinkProxyPriceProvider: iParamsPerNetwork<tEthereumAddress>;
 | 
			
		||||
  FallbackOracle: iParamsPerNetwork<tEthereumAddress>;
 | 
			
		||||
  ChainlinkAggregator: iParamsPerNetwork<ITokenAddress>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IAaveConfiguration extends ICommonConfiguration {
 | 
			
		||||
  ReservesConfig: IReserveConfig;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ITokenAddress {
 | 
			
		||||
  [token: string]: tEthereumAddress;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IUniswapConfiguration extends ICommonConfiguration {
 | 
			
		||||
  ReservesConfig: IReserveConfig;
 | 
			
		||||
  UniAssetsAddresses: iParamsPerNetwork<ITokenAddress>;
 | 
			
		||||
  ChainlinkAggregator: iParamsPerNetwork<ITokenAddress>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface IAaveConfig extends IConfig, IAaveConfiguration {}
 | 
			
		||||
export interface IUniswapConfig extends IConfig, IUniswapConfiguration {}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user