2020-06-08 12:03:40 +00:00
|
|
|
import {
|
|
|
|
iAssetBase,
|
|
|
|
iAavePoolAssets,
|
|
|
|
IMarketRates,
|
|
|
|
iAssetAggregatorBase,
|
|
|
|
AavePools,
|
|
|
|
iMultiPoolsAssets,
|
|
|
|
IReserveParams,
|
|
|
|
tEthereumAddress,
|
|
|
|
iBasicDistributionParams,
|
|
|
|
} from "./types";
|
|
|
|
import BigNumber from "bignumber.js";
|
|
|
|
import {getParamPerPool} from "./contracts-helpers";
|
2020-05-29 14:55:31 +00:00
|
|
|
|
2020-06-08 19:06:26 +00:00
|
|
|
export const TEST_SNAPSHOT_ID = "0x1";
|
|
|
|
|
2020-06-08 12:03:40 +00:00
|
|
|
// ----------------
|
|
|
|
// MATH
|
|
|
|
// ----------------
|
|
|
|
|
|
|
|
export const WAD = Math.pow(10, 18).toString();
|
|
|
|
export const HALF_WAD = new BigNumber(WAD).multipliedBy(0.5).toString();
|
|
|
|
export const RAY = new BigNumber(10).exponentiatedBy(27).toFixed();
|
|
|
|
export const HALF_RAY = new BigNumber(RAY).multipliedBy(0.5).toFixed();
|
|
|
|
export const WAD_RAY_RATIO = Math.pow(10, 9).toString();
|
|
|
|
export const oneEther = new BigNumber(Math.pow(10, 18));
|
|
|
|
export const oneRay = new BigNumber(Math.pow(10, 27));
|
2020-05-29 14:55:31 +00:00
|
|
|
export const MAX_UINT_AMOUNT =
|
|
|
|
"115792089237316195423570985008687907853269984665640564039457584007913129639935";
|
2020-06-08 12:03:40 +00:00
|
|
|
|
|
|
|
// ----------------
|
|
|
|
// 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 ONE_YEAR = "31536000";
|
2020-06-20 23:40:03 +00:00
|
|
|
export const APPROVAL_AMOUNT_LENDING_POOL = "1000000000000000000000000000";
|
2020-06-08 12:03:40 +00:00
|
|
|
export const TOKEN_DISTRIBUTOR_PERCENTAGE_BASE = "10000";
|
|
|
|
export const MOCK_USD_PRICE_IN_WEI = "5848466240000000";
|
|
|
|
export const USD_ADDRESS = "0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96";
|
2020-05-29 14:55:31 +00:00
|
|
|
export const MOCK_ETH_ADDRESS = "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE";
|
2020-06-08 12:03:40 +00:00
|
|
|
export const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
|
|
export const ONE_ADDRESS = "0x0000000000000000000000000000000000000001";
|
2020-06-10 11:46:42 +00:00
|
|
|
export const AAVE_REFERRAL = "0";
|
2020-06-08 12:03:40 +00:00
|
|
|
|
|
|
|
// ----------------
|
|
|
|
// COMMON PROTOCOL PARAMS ACROSS POOLS AND NETWORKS
|
|
|
|
// ----------------
|
|
|
|
|
|
|
|
export const ALL_AAVE_RESERVES_SYMBOLS = [
|
|
|
|
[
|
|
|
|
"ETH",
|
|
|
|
"DAI",
|
|
|
|
"LEND",
|
|
|
|
"TUSD",
|
|
|
|
"BAT",
|
|
|
|
"USDC",
|
|
|
|
"USDT",
|
|
|
|
"SUSD",
|
|
|
|
"ZRX",
|
|
|
|
"MKR",
|
|
|
|
"WBTC",
|
|
|
|
"LINK",
|
|
|
|
"KNC",
|
|
|
|
"MANA",
|
|
|
|
"REP",
|
|
|
|
"SNX",
|
|
|
|
"BUSD",
|
|
|
|
"UNI_DAI_ETH",
|
|
|
|
"UNI_USDC_ETH",
|
|
|
|
"UNI_SETH_ETH",
|
|
|
|
"UNI_LINK_ETH",
|
|
|
|
"UNI_MKR_ETH",
|
|
|
|
"UNI_LEND_ETH",
|
|
|
|
],
|
|
|
|
];
|
|
|
|
|
|
|
|
export const MOCK_CHAINLINK_AGGREGATORS_PRICES: iAssetAggregatorBase<string> = {
|
|
|
|
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(),
|
|
|
|
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(),
|
|
|
|
};
|
|
|
|
|
|
|
|
export const ALL_ASSETS_INITIAL_PRICES: iAssetBase<string> = {
|
|
|
|
...MOCK_CHAINLINK_AGGREGATORS_PRICES,
|
|
|
|
ETH: oneEther.toFixed(),
|
|
|
|
};
|
|
|
|
|
|
|
|
export const LENDING_RATE_ORACLE_RATES_COMMON: iAavePoolAssets<IMarketRates> = {
|
|
|
|
ETH: {
|
|
|
|
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(),
|
|
|
|
},
|
|
|
|
};
|
|
|
|
|
|
|
|
export const getReservesConfigByPool = (
|
|
|
|
pool: AavePools
|
|
|
|
): iMultiPoolsAssets<IReserveParams> =>
|
|
|
|
getParamPerPool<iMultiPoolsAssets<IReserveParams>>(
|
|
|
|
{
|
|
|
|
[AavePools.proto]: {
|
|
|
|
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: "75",
|
|
|
|
liquidationThreshold: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "75",
|
|
|
|
liquidationThreshold: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "75",
|
|
|
|
liquidationThreshold: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "115",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
borrowingEnabled: true,
|
|
|
|
stableBorrowRateEnabled: true,
|
|
|
|
reserveDecimals: "18",
|
|
|
|
},
|
|
|
|
ETH: {
|
|
|
|
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: "75",
|
|
|
|
liquidationThreshold: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "65",
|
|
|
|
liquidationThreshold: "70",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "115",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "60",
|
|
|
|
liquidationThreshold: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "65",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
borrowingEnabled: true,
|
|
|
|
stableBorrowRateEnabled: false,
|
|
|
|
reserveDecimals: "18",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
[AavePools.secondary]: {
|
|
|
|
ETH: {
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "80",
|
|
|
|
liquidationBonus: "105",
|
|
|
|
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: "68",
|
|
|
|
liquidationThreshold: "73",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "68",
|
|
|
|
liquidationThreshold: "73",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "48",
|
|
|
|
liquidationThreshold: "66",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "51",
|
|
|
|
liquidationThreshold: "66",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "63",
|
|
|
|
liquidationThreshold: "68",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
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: "48",
|
|
|
|
liquidationThreshold: "66",
|
|
|
|
liquidationBonus: "110",
|
|
|
|
borrowingEnabled: false,
|
|
|
|
stableBorrowRateEnabled: false,
|
|
|
|
reserveDecimals: "18",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
pool
|
|
|
|
);
|
|
|
|
|
|
|
|
export const getFeeDistributionParamsCommon = (
|
|
|
|
receiver: tEthereumAddress
|
|
|
|
): iBasicDistributionParams => {
|
|
|
|
const receivers = [receiver, ZERO_ADDRESS];
|
|
|
|
const percentages = ["2000", "8000"];
|
|
|
|
return {
|
|
|
|
receivers,
|
|
|
|
percentages,
|
|
|
|
};
|
|
|
|
};
|