mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
226 lines
8.1 KiB
TypeScript
226 lines
8.1 KiB
TypeScript
import BigNumber from 'bignumber.js';
|
|
import { oneRay } from '../../helpers/constants';
|
|
import { eContractid, IReserveParams } from '../../helpers/types';
|
|
|
|
export const strategyBase: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).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(),
|
|
baseLTVAsCollateral: '6000',
|
|
liquidationThreshold: '6500',
|
|
liquidationBonus: '11000',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: true,
|
|
reserveDecimals: '18',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const stablecoinStrategyBase: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
|
|
baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(1.5).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope1: new BigNumber(0.06).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope2: new BigNumber(1.5).multipliedBy(oneRay).toFixed(),
|
|
baseLTVAsCollateral: '7500',
|
|
liquidationThreshold: '8000',
|
|
liquidationBonus: '10500',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: true,
|
|
reserveDecimals: '18',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const stablecoinStrategyCentralized: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
|
|
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: '7500',
|
|
liquidationThreshold: '8000',
|
|
liquidationBonus: '10500',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: true,
|
|
reserveDecimals: '6',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const strategyGovernanceTokens: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '4000',
|
|
liquidationBonus: '11500',
|
|
};
|
|
|
|
export const stablecoinStrategyBUSD: IReserveParams = {
|
|
...stablecoinStrategyCentralized,
|
|
reserveDecimals: '18',
|
|
baseLTVAsCollateral: '-1',
|
|
liquidationThreshold: '0',
|
|
liquidationBonus: '0',
|
|
baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
|
|
stableBorrowRateEnabled: false,
|
|
stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
|
|
};
|
|
|
|
export const strategyAAVE: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '5000',
|
|
liquidationThreshold: '6500',
|
|
liquidationBonus: '11000',
|
|
borrowingEnabled: false,
|
|
stableBorrowRateEnabled: false,
|
|
reserveDecimals: '18',
|
|
};
|
|
|
|
export const stablecoinStrategyDAI: IReserveParams = {
|
|
...stablecoinStrategyBase,
|
|
};
|
|
|
|
export const strategyENJ: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '5500',
|
|
stableBorrowRateEnabled: false,
|
|
};
|
|
|
|
export const strategyKNC: IReserveParams = {
|
|
...strategyBase,
|
|
variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
|
|
};
|
|
|
|
export const strategyLINK: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '6500',
|
|
liquidationThreshold: '7000',
|
|
};
|
|
|
|
export const strategyMANA: IReserveParams = {
|
|
...strategyBase,
|
|
variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(0.5).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
|
|
};
|
|
|
|
export const strategyMKR: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '3500',
|
|
};
|
|
|
|
export const strategyREN: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '5000',
|
|
liquidationThreshold: '6500',
|
|
liquidationBonus: '11000',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: false,
|
|
};
|
|
|
|
export const stablecoinStrategySUSD: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
|
|
baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
|
|
baseLTVAsCollateral: '-1',
|
|
liquidationThreshold: '0',
|
|
liquidationBonus: '0',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: false,
|
|
reserveDecimals: '18',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const strategySNX: IReserveParams = {
|
|
...strategyBase,
|
|
baseLTVAsCollateral: '1500',
|
|
liquidationThreshold: '4000',
|
|
baseVariableBorrowRate: new BigNumber(0.03).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope1: new BigNumber(0.12).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
|
|
stableBorrowRateEnabled: false,
|
|
};
|
|
|
|
export const stablecoinStrategyTUSD: IReserveParams = {
|
|
...stablecoinStrategyCentralized,
|
|
baseVariableBorrowRate: new BigNumber(0.01).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
|
|
variableRateSlope2: new BigNumber(1.5).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope1: new BigNumber(0.14).multipliedBy(oneRay).toFixed(),
|
|
stableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: false,
|
|
reserveDecimals: '18',
|
|
};
|
|
|
|
export const strategyUNI: IReserveParams = {
|
|
...strategyGovernanceTokens,
|
|
stableBorrowRateEnabled: false,
|
|
aTokenImpl: eContractid.DelegationAwareAToken,
|
|
};
|
|
|
|
export const stablecoinStrategyUSDC: IReserveParams = {
|
|
...stablecoinStrategyBase,
|
|
variableRateSlope2: new BigNumber(0.6).multipliedBy(oneRay).toFixed(),
|
|
reserveDecimals: '6',
|
|
};
|
|
|
|
export const stablecoinStrategyUSDT: IReserveParams = {
|
|
...stablecoinStrategyBase,
|
|
baseLTVAsCollateral: '-1',
|
|
liquidationThreshold: '7000',
|
|
liquidationBonus: '0',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: true,
|
|
reserveDecimals: '6',
|
|
};
|
|
|
|
export const strategyWBTC: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
|
|
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',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const strategyWETH: IReserveParams = {
|
|
optimalUtilizationRate: new BigNumber(0.8).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(),
|
|
baseLTVAsCollateral: '7500',
|
|
liquidationThreshold: '8000',
|
|
liquidationBonus: '10500',
|
|
borrowingEnabled: true,
|
|
stableBorrowRateEnabled: true,
|
|
reserveDecimals: '18',
|
|
aTokenImpl: eContractid.AToken,
|
|
reserveFactor: '1000'
|
|
};
|
|
|
|
export const strategyYFI: IReserveParams = {
|
|
...strategyGovernanceTokens,
|
|
};
|