mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	config: initial harmony config setup
This commit is contained in:
		
							parent
							
								
									fa1f1349b7
								
							
						
					
					
						commit
						6242f4d974
					
				|  | @ -74,4 +74,10 @@ export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { | |||
|   xSUSHI: oneEther.multipliedBy('0.00913428586').toFixed(), | ||||
|   WAVAX: oneEther.multipliedBy('0.006051936629').toFixed(), | ||||
|   USD: '5848466240000000', | ||||
|   WONE: oneEther.multipliedBy('0.000048').toFixed(), | ||||
|   '1WBTC': oneEther.multipliedBy('47.332685').toFixed(), | ||||
|   '1ETH': oneEther.toFixed(), | ||||
|   '1USDC': oneEther.multipliedBy('0.00369068412860').toFixed(), | ||||
|   '1USDT': oneEther.multipliedBy('0.00369068412860').toFixed(), | ||||
|   '1DAI': oneEther.multipliedBy('0.00369068412860').toFixed(), | ||||
| }; | ||||
|  |  | |||
|  | @ -4,7 +4,12 @@ export interface SymbolMap<T> { | |||
|   [symbol: string]: T; | ||||
| } | ||||
| 
 | ||||
| export type eNetwork = eEthereumNetwork | ePolygonNetwork | eXDaiNetwork | eAvalancheNetwork; | ||||
| export type eNetwork = | ||||
|   | eEthereumNetwork | ||||
|   | ePolygonNetwork | ||||
|   | eXDaiNetwork | ||||
|   | eAvalancheNetwork | ||||
|   | eHarmonyNetwork; | ||||
| 
 | ||||
| export enum eEthereumNetwork { | ||||
|   buidlerevm = 'buidlerevm', | ||||
|  | @ -30,6 +35,11 @@ export enum eAvalancheNetwork { | |||
|   fuji = 'fuji', | ||||
| } | ||||
| 
 | ||||
| export enum eHarmonyNetwork { | ||||
|   harmony = 'harmony', | ||||
|   testnet = 'harmony-testnet', | ||||
| } | ||||
| 
 | ||||
| export enum EthereumNetworkNames { | ||||
|   kovan = 'kovan', | ||||
|   ropsten = 'ropsten', | ||||
|  | @ -251,6 +261,12 @@ export interface iAssetBase<T> { | |||
|   STAKE: T; | ||||
|   xSUSHI: T; | ||||
|   WAVAX: T; | ||||
|   '1ETH': T; | ||||
|   '1WBTC': T; | ||||
|   '1USDT': T; | ||||
|   '1USDC': T; | ||||
|   '1DAI': T; | ||||
|   WONE: T; | ||||
| } | ||||
| 
 | ||||
| export type iAssetsWithoutETH<T> = Omit<iAssetBase<T>, 'ETH'>; | ||||
|  | @ -280,6 +296,12 @@ export type iAavePoolAssets<T> = Pick< | |||
|   | 'REN' | ||||
|   | 'ENJ' | ||||
|   | 'xSUSHI' | ||||
|   | '1ETH' | ||||
|   | '1WBTC' | ||||
|   | '1USDT' | ||||
|   | '1USDC' | ||||
|   | '1DAI' | ||||
|   | 'WONE' | ||||
| >; | ||||
| 
 | ||||
| export type iLpPoolAssets<T> = Pick< | ||||
|  | @ -413,7 +435,8 @@ export type iParamsPerNetwork<T> = | |||
|   | iEthereumParamsPerNetwork<T> | ||||
|   | iPolygonParamsPerNetwork<T> | ||||
|   | iXDaiParamsPerNetwork<T> | ||||
|   | iAvalancheParamsPerNetwork<T>; | ||||
|   | iAvalancheParamsPerNetwork<T> | ||||
|   | iHarmonyParamsPerNetwork<T>; | ||||
| 
 | ||||
| export interface iParamsPerNetworkAll<T> | ||||
|   extends iEthereumParamsPerNetwork<T>, | ||||
|  | @ -444,6 +467,11 @@ export interface iAvalancheParamsPerNetwork<T> { | |||
|   [eAvalancheNetwork.fuji]: T; | ||||
| } | ||||
| 
 | ||||
| export interface iHarmonyParamsPerNetwork<T> { | ||||
|   [eHarmonyNetwork.harmony]: T; | ||||
|   [eHarmonyNetwork.testnet]: T; | ||||
| } | ||||
| 
 | ||||
| export interface iParamsPerPool<T> { | ||||
|   [AavePools.proto]: T; | ||||
|   [AavePools.matic]: T; | ||||
|  | @ -553,3 +581,12 @@ export interface ITokenAddress { | |||
| } | ||||
| 
 | ||||
| export type PoolConfiguration = ICommonConfiguration | IAaveConfiguration; | ||||
| 
 | ||||
| export interface IHarmonyConfiguration extends ICommonConfiguration { | ||||
|   ReservesConfig: iHarmonyPoolAssets<IReserveParams>; | ||||
| } | ||||
| 
 | ||||
| export type iHarmonyPoolAssets<T> = Pick< | ||||
|   iAssetsWithoutUSD<T>, | ||||
|   '1ETH' | '1DAI' | '1USDT' | '1WBTC' | 'WONE' | '1USDC' | ||||
| >; | ||||
|  |  | |||
							
								
								
									
										153
									
								
								markets/harmony/commons.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								markets/harmony/commons.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,153 @@ | |||
| import { oneRay, MOCK_CHAINLINK_AGGREGATORS_PRICES, oneUsd } from '../../helpers/constants'; | ||||
| import { ICommonConfiguration, eHarmonyNetwork } from '../../helpers/types'; | ||||
| 
 | ||||
| // ----------------
 | ||||
| // PROTOCOL GLOBAL PARAMS
 | ||||
| // ----------------
 | ||||
| 
 | ||||
| export const CommonsConfig: ICommonConfiguration = { | ||||
|   MarketId: 'Commons', | ||||
|   ATokenNamePrefix: 'Aave Harmony Market', | ||||
|   StableDebtTokenNamePrefix: 'Aave Harmony Market stable debt', | ||||
|   VariableDebtTokenNamePrefix: 'Aave Harmony Market variable debt', | ||||
|   SymbolPrefix: 'o', | ||||
|   ProviderId: 0, // Overriden in index.ts
 | ||||
|   OracleQuoteCurrency: 'USD', | ||||
|   OracleQuoteUnit: oneUsd.toString(), | ||||
|   ProtocolGlobalParams: { | ||||
|     TokenDistributorPercentageBase: '10000', | ||||
|     MockUsdPriceInWei: '5848466240000000', | ||||
|     UsdAddress: '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96', // TODO: what is this?
 | ||||
|     NilAddress: '0x0000000000000000000000000000000000000000', | ||||
|     OneAddress: '0x0000000000000000000000000000000000000001', | ||||
|     AaveReferral: '0', | ||||
|   }, | ||||
| 
 | ||||
|   // ----------------
 | ||||
|   // COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS
 | ||||
|   // ----------------
 | ||||
| 
 | ||||
|   Mocks: { | ||||
|     AllAssetsInitialPrices: { | ||||
|       ...MOCK_CHAINLINK_AGGREGATORS_PRICES, | ||||
|     }, | ||||
|   }, | ||||
|   LendingRateOracleRatesCommon: { | ||||
|     '1WETH': { | ||||
|       borrowRate: oneRay.multipliedBy(0.03).toFixed(), | ||||
|     }, | ||||
|     '1DAI': { | ||||
|       borrowRate: oneRay.multipliedBy(0.039).toFixed(), | ||||
|     }, | ||||
|     '1USDC': { | ||||
|       borrowRate: oneRay.multipliedBy(0.039).toFixed(), | ||||
|     }, | ||||
|     '1USDT': { | ||||
|       borrowRate: oneRay.multipliedBy(0.035).toFixed(), | ||||
|     }, | ||||
|     '1WBTC': { | ||||
|       borrowRate: oneRay.multipliedBy(0.03).toFixed(), | ||||
|     }, | ||||
|     WONE: { | ||||
|       borrowRate: oneRay.multipliedBy(0.05).toFixed(), | ||||
|     }, | ||||
|   }, | ||||
|   // ----------------
 | ||||
|   // COMMON PROTOCOL ADDRESSES ACROSS POOLS
 | ||||
|   // ----------------
 | ||||
| 
 | ||||
|   // If PoolAdmin/emergencyAdmin is set, will take priority over PoolAdminIndex/emergencyAdminIndex
 | ||||
|   PoolAdmin: { | ||||
|     [eHarmonyNetwork.harmony]: undefined, | ||||
|     [eHarmonyNetwork.testnet]: undefined, | ||||
|   }, | ||||
|   PoolAdminIndex: 0, | ||||
|   EmergencyAdminIndex: 0, | ||||
|   EmergencyAdmin: { | ||||
|     [eHarmonyNetwork.harmony]: undefined, | ||||
|     [eHarmonyNetwork.testnet]: undefined, | ||||
|   }, | ||||
|   FallbackOracle: { | ||||
|     [eHarmonyNetwork.harmony]: undefined, | ||||
|     [eHarmonyNetwork.testnet]: undefined, | ||||
|   }, | ||||
|   ProviderRegistry: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   ProviderRegistryOwner: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   LendingRateOracle: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   LendingPoolCollateralManager: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   LendingPoolConfigurator: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   LendingPool: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   WethGateway: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   TokenDistributor: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   AaveOracle: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   ChainlinkAggregator: { | ||||
|     [eHarmonyNetwork.harmony]: { | ||||
|       '1ETH': '', | ||||
|       '1WBTC': '', | ||||
|       '1DAI': '', | ||||
|       '1USDC': '', | ||||
|       '1USDT': '', | ||||
|       WONE: '', | ||||
|     }, | ||||
|     [eHarmonyNetwork.testnet]: { | ||||
|       '1WETH': '0x4f11696cE92D78165E1F8A9a4192444087a45b64', | ||||
|       '1WBTC': '0xEF637736B220a58C661bfF4b71e03ca898DCC0Bd', | ||||
|       '1DAI': '0x1FA508EB3Ac431f3a9e3958f2623358e07D50fe0', | ||||
|       '1USDC': '0x6F2bD4158F771E120d3692C45Eb482C16f067dec', | ||||
|       '1USDT': '0x9A37E1abFC430B9f5E204CA9294809c1AF37F697', | ||||
|       WONE: '0xcEe686F89bc0dABAd95AEAAC980aE1d97A075FAD', | ||||
|     }, | ||||
|   }, | ||||
|   ReserveAssets: { | ||||
|     [eHarmonyNetwork.harmony]: {}, | ||||
|     [eHarmonyNetwork.testnet]: {}, | ||||
|   }, | ||||
|   ReservesConfig: {}, | ||||
|   ATokenDomainSeparator: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   WETH: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   WrappedNativeToken: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   ReserveFactorTreasuryAddress: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
|   IncentivesController: { | ||||
|     [eHarmonyNetwork.harmony]: '', | ||||
|     [eHarmonyNetwork.testnet]: '', | ||||
|   }, | ||||
| }; | ||||
							
								
								
									
										49
									
								
								markets/harmony/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								markets/harmony/index.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| import { eHarmonyNetwork, IHarmonyConfiguration } from '../../helpers/types'; | ||||
| 
 | ||||
| import { CommonsConfig } from './commons'; | ||||
| import { | ||||
|   strategyWETH, | ||||
|   strategyDAI, | ||||
|   strategyUSDC, | ||||
|   strategyUSDT, | ||||
|   strategyWBTC, | ||||
|   strategyWONE, | ||||
| } from './reservesConfigs'; | ||||
| 
 | ||||
| // ----------------
 | ||||
| // POOL--SPECIFIC PARAMS
 | ||||
| // ----------------
 | ||||
| 
 | ||||
| export const HarmonyConfig: IHarmonyConfiguration = { | ||||
|   ...CommonsConfig, | ||||
|   MarketId: 'Harmony market', | ||||
|   ProviderId: 5, | ||||
|   ReservesConfig: { | ||||
|     '1ETH': strategyWETH, | ||||
|     '1DAI': strategyDAI, | ||||
|     '1USDT': strategyUSDT, | ||||
|     '1USDC': strategyUSDC, | ||||
|     '1WBTC': strategyWBTC, | ||||
|     WONE: strategyWONE, | ||||
|   }, | ||||
|   ReserveAssets: { | ||||
|     [eHarmonyNetwork.harmony]: { | ||||
|       '1ETH': '0x6983d1e6def3690c4d616b13597a09e6193ea013', | ||||
|       '1WBTC': '0x3095c7557bcb296ccc6e363de01b760ba031f2d9', | ||||
|       '1DAI': '0xef977d2f931c1978db5f6747666fa1eacb0d0339', | ||||
|       '1USDC': '0x985458e523db3d53125813ed68c274899e9dfab4', | ||||
|       '1USDT': '0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f', | ||||
|       WONE: '0xcf664087a5bb0237a0bad6742852ec6c8d69a27a', | ||||
|     }, | ||||
|     [eHarmonyNetwork.testnet]: { | ||||
|       '1ETH': '', | ||||
|       '1WBTC': '', | ||||
|       '1DAI': '', | ||||
|       '1USDC': '', | ||||
|       '1USDT': '', | ||||
|       WONE: '', | ||||
|     }, | ||||
|   }, | ||||
| }; | ||||
| 
 | ||||
| export default HarmonyConfig; | ||||
							
								
								
									
										23
									
								
								markets/harmony/rateStrategies.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								markets/harmony/rateStrategies.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,23 @@ | |||
| import BigNumber from 'bignumber.js'; | ||||
| import { oneRay } from '../../helpers/constants'; | ||||
| import { IInterestRateStrategyParams } from '../../helpers/types'; | ||||
| 
 | ||||
| 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: '0', | ||||
|   stableRateSlope2: '0', | ||||
| }; | ||||
| 
 | ||||
| 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(), | ||||
| }; | ||||
							
								
								
									
										87
									
								
								markets/harmony/reservesConfigs.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								markets/harmony/reservesConfigs.ts
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,87 @@ | |||
| import { eContractid, IReserveParams } from '../../helpers/types'; | ||||
| 
 | ||||
| import { rateStrategyStableOne, rateStrategyVolatileOne } from './rateStrategies'; | ||||
| 
 | ||||
| export const strategyWONE: IReserveParams = { | ||||
|   strategy: rateStrategyVolatileOne, | ||||
|   baseLTVAsCollateral: '5000', | ||||
|   liquidationThreshold: '6500', | ||||
|   liquidationBonus: '11000', | ||||
|   borrowingEnabled: true, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '18', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '1500', | ||||
| }; | ||||
| 
 | ||||
| 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: '6000', | ||||
|   liquidationThreshold: '7500', | ||||
|   liquidationBonus: '10500', | ||||
|   borrowingEnabled: true, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '8', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '1000', | ||||
| }; | ||||
| 
 | ||||
| export const strategyAAVE: IReserveParams = { | ||||
|   strategy: rateStrategyVolatileOne, | ||||
|   baseLTVAsCollateral: '4000', | ||||
|   liquidationThreshold: '6500', | ||||
|   liquidationBonus: '11000', | ||||
|   borrowingEnabled: false, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '18', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '2000', | ||||
| }; | ||||
| 
 | ||||
| export const strategyDAI: IReserveParams = { | ||||
|   strategy: rateStrategyStableOne, | ||||
|   baseLTVAsCollateral: '7500', | ||||
|   liquidationThreshold: '8000', | ||||
|   liquidationBonus: '10500', | ||||
|   borrowingEnabled: true, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '18', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '1000', | ||||
| }; | ||||
| 
 | ||||
| export const strategyUSDT: IReserveParams = { | ||||
|   strategy: rateStrategyStableOne, | ||||
|   baseLTVAsCollateral: '0', | ||||
|   liquidationThreshold: '0', | ||||
|   liquidationBonus: '0', | ||||
|   borrowingEnabled: true, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '6', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '1000', | ||||
| }; | ||||
| 
 | ||||
| export const strategyUSDC: IReserveParams = { | ||||
|   strategy: rateStrategyStableOne, | ||||
|   baseLTVAsCollateral: '7500', | ||||
|   liquidationThreshold: '8000', | ||||
|   liquidationBonus: '10500', | ||||
|   borrowingEnabled: true, | ||||
|   stableBorrowRateEnabled: false, | ||||
|   reserveDecimals: '6', | ||||
|   aTokenImpl: eContractid.AToken, | ||||
|   reserveFactor: '1000', | ||||
| }; | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 kartojal
						kartojal