Skip to content

Commit 984e19c

Browse files
committed
config: revised risk config
1 parent 2d3bcf2 commit 984e19c

File tree

7 files changed

+106
-193
lines changed

7 files changed

+106
-193
lines changed

helpers/constants.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ export const MOCK_USD_PRICE_IN_WEI = '5848466240000000';
3131
export const USD_ADDRESS = '0x10F7Fc1F91Ba351f9C629c5947AD69bD03C05b96';
3232
export const AAVE_REFERRAL = '0';
3333

34-
export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { // Update to USD-based price feeds
34+
export const MOCK_CHAINLINK_AGGREGATORS_PRICES = {
35+
// Update to USD-based price feeds
3536
AAVE: oneEther.multipliedBy('0.003620948469').toFixed(),
3637
BAT: oneEther.multipliedBy('0.00137893825230').toFixed(),
3738
BUSD: oneEther.multipliedBy('0.00736484').toFixed(),
@@ -71,6 +72,6 @@ export const MOCK_CHAINLINK_AGGREGATORS_PRICES = { // Update to USD-based price
7172
WMATIC: oneEther.multipliedBy('0.003620948469').toFixed(),
7273
STAKE: oneEther.multipliedBy('0.003620948469').toFixed(),
7374
xSUSHI: oneEther.multipliedBy('0.00913428586').toFixed(),
74-
AVAX: oneEther.multipliedBy('0.006051936629').toFixed(),
75+
WAVAX: oneEther.multipliedBy('0.006051936629').toFixed(),
7576
USD: '5848466240000000',
7677
};

helpers/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ export interface iAssetBase<T> {
247247
WMATIC: T;
248248
STAKE: T;
249249
xSUSHI: T;
250-
AVAX: T;
250+
WAVAX: T;
251251
}
252252

253253
export type iAssetsWithoutETH<T> = Omit<iAssetBase<T>, 'ETH'>;
@@ -316,7 +316,7 @@ export type iXDAIPoolAssets<T> = Pick<
316316

317317
export type iAvalanchePoolAssets<T> = Pick<
318318
iAssetsWithoutUSD<T>,
319-
'WETH' | 'DAI' | 'USDC' | 'USDT' | 'AAVE' | 'WBTC' | 'AVAX'
319+
'WETH' | 'DAI' | 'USDT' | 'AAVE' | 'WBTC' | 'WAVAX' | 'USDC'
320320
>;
321321

322322
export type iMultiPoolsAssets<T> = iAssetCommon<T> | iAavePoolAssets<T>;
@@ -366,7 +366,7 @@ export enum TokenContractId {
366366
WMATIC = 'WMATIC',
367367
STAKE = 'STAKE',
368368
xSUSHI = 'xSUSHI',
369-
AVAX = 'AVAX',
369+
WAVAX = 'WAVAX',
370370
}
371371

372372
export interface IReserveParams extends IReserveBorrowParams, IReserveCollateralParams {

markets/avalanche/commons.ts

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ export const CommonsConfig: ICommonConfiguration = {
1818
ATokenNamePrefix: 'Aave Avalanche Market',
1919
StableDebtTokenNamePrefix: 'Aave Avalanche Market stable debt',
2020
VariableDebtTokenNamePrefix: 'Aave Avalanche Market variable debt',
21-
SymbolPrefix: 'ava',
21+
SymbolPrefix: 'v',
2222
ProviderId: 0, // Overriden in index.ts
2323
OracleQuoteCurrency: 'USD',
2424
OracleQuoteUnit: oneUsd.toString(),
@@ -60,9 +60,9 @@ export const CommonsConfig: ICommonConfiguration = {
6060
WBTC: {
6161
borrowRate: oneRay.multipliedBy(0.03).toFixed(),
6262
},
63-
AVAX: {
63+
WAVAX: {
6464
borrowRate: oneRay.multipliedBy(0.05).toFixed(), // TODO: fix borrowRate?
65-
}
65+
},
6666
},
6767
// ----------------
6868
// COMMON PROTOCOL ADDRESSES ACROSS POOLS
@@ -71,98 +71,95 @@ export const CommonsConfig: ICommonConfiguration = {
7171
// If PoolAdmin/emergencyAdmin is set, will take priority over PoolAdminIndex/emergencyAdminIndex
7272
PoolAdmin: {
7373
[eAvalancheNetwork.avalanche]: undefined,
74-
[eAvalancheNetwork.fuji]: undefined
74+
[eAvalancheNetwork.fuji]: undefined,
7575
},
7676
PoolAdminIndex: 0,
7777
EmergencyAdminIndex: 0,
7878
EmergencyAdmin: {
7979
[eAvalancheNetwork.avalanche]: undefined,
80-
[eAvalancheNetwork.fuji]: undefined
80+
[eAvalancheNetwork.fuji]: undefined,
8181
},
8282
ProviderRegistry: {
8383
[eAvalancheNetwork.avalanche]: '',
84-
[eAvalancheNetwork.fuji]: '0x06eC0BDC3997EE32Cb5B66a1B9C11d92e2C27Aab'
84+
[eAvalancheNetwork.fuji]: '0x06eC0BDC3997EE32Cb5B66a1B9C11d92e2C27Aab',
8585
},
8686
ProviderRegistryOwner: {
8787
[eAvalancheNetwork.avalanche]: '',
88-
[eAvalancheNetwork.fuji]: '0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e'
88+
[eAvalancheNetwork.fuji]: '0x1128d177BdaA74Ae68EB06e693f4CbA6BF427a5e',
8989
},
9090
LendingRateOracle: {
9191
[eAvalancheNetwork.avalanche]: '',
92-
[eAvalancheNetwork.fuji]: '0xEbBD998B7Dc2a8E675F0859d907c8Fa6027aBc7b'
92+
[eAvalancheNetwork.fuji]: '0xEbBD998B7Dc2a8E675F0859d907c8Fa6027aBc7b',
9393
},
9494
LendingPoolCollateralManager: {
9595
[eAvalancheNetwork.avalanche]: '',
96-
[eAvalancheNetwork.fuji]: '0x6242bE2fB5591FA1e81a99e6DD55Ff667fa82a71'
96+
[eAvalancheNetwork.fuji]: '0x6242bE2fB5591FA1e81a99e6DD55Ff667fa82a71',
9797
},
9898
LendingPoolConfigurator: {
9999
[eAvalancheNetwork.avalanche]: '',
100-
[eAvalancheNetwork.fuji]: ''
100+
[eAvalancheNetwork.fuji]: '',
101101
},
102102
LendingPool: {
103103
[eAvalancheNetwork.avalanche]: '',
104-
[eAvalancheNetwork.fuji]: '0x5f3968A2E41C95A95329333d44AB989de6c43f8E'
104+
[eAvalancheNetwork.fuji]: '0x5f3968A2E41C95A95329333d44AB989de6c43f8E',
105105
},
106106
WethGateway: {
107107
[eAvalancheNetwork.avalanche]: '',
108-
[eAvalancheNetwork.fuji]: '0x62AF6258d26838f33BADFbb33cf1De8FaB8EB19f'
108+
[eAvalancheNetwork.fuji]: '0x62AF6258d26838f33BADFbb33cf1De8FaB8EB19f',
109109
},
110110
TokenDistributor: {
111111
[eAvalancheNetwork.avalanche]: '',
112-
[eAvalancheNetwork.fuji]: ''
112+
[eAvalancheNetwork.fuji]: '',
113113
},
114114
AaveOracle: {
115115
[eAvalancheNetwork.avalanche]: '',
116-
[eAvalancheNetwork.fuji]: '0xD217DdD9f0Af84644dEFe84a0b634621D4617a29'
116+
[eAvalancheNetwork.fuji]: '0xD217DdD9f0Af84644dEFe84a0b634621D4617a29',
117117
},
118118
FallbackOracle: {
119119
[eAvalancheNetwork.avalanche]: ZERO_ADDRESS,
120-
[eAvalancheNetwork.fuji]: ZERO_ADDRESS
120+
[eAvalancheNetwork.fuji]: ZERO_ADDRESS,
121121
},
122122
ChainlinkAggregator: {
123123
[eAvalancheNetwork.avalanche]: {
124124
WETH: '0x976B3D034E162d8bD72D6b9C989d545b839003b0',
125125
DAI: '0x51D7180edA2260cc4F6e4EebB82FEF5c3c2B8300',
126-
USDC: ' 0xF096872672F44d6EBA71458D74fe67F9a77a23B9',
126+
USDC: '0xF096872672F44d6EBA71458D74fe67F9a77a23B9',
127127
USDT: '0xEBE676ee90Fe1112671f19b6B7459bC678B67e8a',
128128
AAVE: '0x3CA13391E9fb38a75330fb28f8cc2eB3D9ceceED',
129129
WBTC: '0x2779D32d5166BAaa2B2b658333bA7e6Ec0C65743',
130-
AVAX: '0x0A77230d17318075983913bC2145DB16C7366156',
130+
WAVAX: '0x0A77230d17318075983913bC2145DB16C7366156',
131131
},
132132
[eAvalancheNetwork.fuji]: {
133133
WETH: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA',
134-
// DAI: '',
135-
// USDC: '',
136134
USDT: '0x7898AcCC83587C3C55116c5230C17a6Cd9C71bad',
137-
// AAVE: '',
138135
WBTC: '0x31CF013A08c6Ac228C94551d535d5BAfE19c602a',
139-
AVAX: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD',
140-
USD: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA'
136+
WAVAX: '0x5498BB86BC934c8D34FDA08E81D444153d0D06aD',
137+
USD: '0x86d67c3D38D2bCeE722E601025C25a575021c6EA',
141138
},
142139
},
143140
ReserveAssets: {
144141
[eAvalancheNetwork.avalanche]: {},
145-
[eAvalancheNetwork.fuji]: {}
142+
[eAvalancheNetwork.fuji]: {},
146143
},
147144
ReservesConfig: {},
148145
ATokenDomainSeparator: {
149146
[eAvalancheNetwork.avalanche]: '',
150-
[eAvalancheNetwork.fuji]: ''
147+
[eAvalancheNetwork.fuji]: '',
151148
},
152149
WETH: {
153150
[eAvalancheNetwork.avalanche]: '0xf20d962a6c8f70c731bd838a3a388D7d48fA6e15', // WETH Address
154-
[eAvalancheNetwork.fuji]: '0x3b8b3fc85ccA720809Af2dA4B58cF4ce84bcbdd0' // MintableERC20 WETH
151+
[eAvalancheNetwork.fuji]: '0x3b8b3fc85ccA720809Af2dA4B58cF4ce84bcbdd0', // MintableERC20 WETH
155152
},
156153
WrappedNativeToken: {
157-
[eAvalancheNetwork.avalanche]: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', // Official WAVAX
158-
[eAvalancheNetwork.fuji]: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c' // Official WAVAX
154+
[eAvalancheNetwork.avalanche]: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7', // Official WAVAX
155+
[eAvalancheNetwork.fuji]: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', // Official WAVAX
159156
},
160157
ReserveFactorTreasuryAddress: {
161-
[eAvalancheNetwork.avalanche]: '',
162-
[eAvalancheNetwork.fuji]: '0xB45F5C501A22288dfdb897e5f73E189597e09288' // Self-controlled EOA
158+
[eAvalancheNetwork.avalanche]: '0xBDEE917d2BDE529eDEc5b20e0B770F56EDFE8e74', // Not Final, only for test purposes
159+
[eAvalancheNetwork.fuji]: '0xB45F5C501A22288dfdb897e5f73E189597e09288', // Self-controlled EOA
163160
},
164161
IncentivesController: {
165-
[eAvalancheNetwork.avalanche]: ZERO_ADDRESS,
166-
[eAvalancheNetwork.fuji]: '0xa1EF206fb9a8D8186157FC817fCddcC47727ED55' // AVAX Incentives Controller
162+
[eAvalancheNetwork.avalanche]: ZERO_ADDRESS, // Not final, no incentives proxy for test purposes
163+
[eAvalancheNetwork.fuji]: '0xa1EF206fb9a8D8186157FC817fCddcC47727ED55', // WAVAX Incentives Controller
167164
},
168165
};

markets/avalanche/index.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
import { oneRay, ZERO_ADDRESS } from '../../helpers/constants';
2-
import { IAaveConfiguration, eEthereumNetwork, eAvalancheNetwork, IAvalancheConfiguration } from '../../helpers/types';
2+
import {
3+
IAaveConfiguration,
4+
eEthereumNetwork,
5+
eAvalancheNetwork,
6+
IAvalancheConfiguration,
7+
} from '../../helpers/types';
38

49
import { CommonsConfig } from './commons';
510
import {
@@ -9,7 +14,7 @@ import {
914
strategyUSDT,
1015
strategyAAVE,
1116
strategyWBTC,
12-
strategyAVAX,
17+
strategyWAVAX,
1318
} from './reservesConfigs';
1419

1520
// ----------------
@@ -23,30 +28,29 @@ export const AvalancheConfig: IAvalancheConfiguration = {
2328
ReservesConfig: {
2429
WETH: strategyWETH,
2530
DAI: strategyDAI,
26-
USDC: strategyUSDC,
2731
USDT: strategyUSDT,
32+
USDC: strategyUSDC,
2833
AAVE: strategyAAVE,
2934
WBTC: strategyWBTC,
30-
AVAX: strategyAVAX,
35+
WAVAX: strategyWAVAX,
3136
},
3237
ReserveAssets: {
33-
[eAvalancheNetwork.avalanche]: { // TODO: Check this
34-
WETH: '0xf20d962a6c8f70c731bd838a3a388D7d48fA6e15',
35-
// DAI: '0xbA7dEebBFC5fA1100Fb055a87773e1E99Cd3507a',
36-
// USDC: '', // TODO: Not yet deployed by Circle
37-
USDT: '0xde3A24028580884448a5397872046a019649b084',
38-
// AAVE: '0x8cE2Dee54bB9921a2AE0A63dBb2DF8eD88B91dD9', // TODO: What we are going to do?
39-
WBTC: '0x408D4cD0ADb7ceBd1F1A1C33A0Ba2098E1295bAB',
40-
// AVAX: '' // TODO: Use WAVAX?
38+
[eAvalancheNetwork.avalanche]: {
39+
WETH: '0x49d5c2bdffac6ce2bfdb6640f4f80f226bc10bab',
40+
DAI: '0xd586e7f844cea2f87f50152665bcbc2c279d8d70',
41+
USDT: '0xc7198437980c041c805a1edcba50c1ce5db95118',
42+
USDC: '0xa7d7079b0fead91f3e65f86e8915cb59c1a4c664',
43+
AAVE: '0x63a72806098bd3d9520cc43356dd78afe5d386d9',
44+
WBTC: '0x50b7545627a5162f82a992c33b87adc75187b218',
45+
WAVAX: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
4146
},
4247
[eAvalancheNetwork.fuji]: {
4348
WETH: '0x9668f5f55f2712Dd2dfa316256609b516292D554', // MintableERC20 token
44-
// DAI: '0x51BC2DfB9D12d9dB50C855A5330fBA0faF761D15',
45-
// USDC: '0x7804D7f48f6E5749AF5c8Fa87b20702C34a7f5c2',
49+
DAI: '0x51BC2DfB9D12d9dB50C855A5330fBA0faF761D15',
4650
USDT: '0x02823f9B469960Bb3b1de0B3746D4b95B7E35543', // MintableERC20 token
47-
// AAVE: '0x47183584aCbc1C45608d7B61cce1C562Ee180E7e',
51+
AAVE: '0x47183584aCbc1C45608d7B61cce1C562Ee180E7e',
4852
WBTC: '0x9C1DCacB57ADa1E9e2D3a8280B7cfC7EB936186F', // MintableERC20 token
49-
AVAX: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c' // Official WAVAX
53+
WAVAX: '0xd00ae08403B9bbb9124bB305C09058E32C39A48c', // Official WAVAX
5054
},
5155
},
5256
};

markets/avalanche/rateStrategies.ts

Lines changed: 8 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -2,104 +2,22 @@ import BigNumber from 'bignumber.js';
22
import { oneRay } from '../../helpers/constants';
33
import { IInterestRateStrategyParams } from '../../helpers/types';
44

5-
// BUSD SUSD
6-
export const rateStrategyStableOne: IInterestRateStrategyParams = {
7-
name: "rateStrategyStableOne",
8-
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
5+
export const rateStrategyVolatileOne: IInterestRateStrategyParams = {
6+
name: 'rateStrategyVolatileOne',
7+
optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
98
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
10-
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
11-
variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
9+
variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
10+
variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
1211
stableRateSlope1: '0',
1312
stableRateSlope2: '0',
1413
};
1514

16-
// DAI TUSD
17-
export const rateStrategyStableTwo: IInterestRateStrategyParams = {
18-
name: "rateStrategyStableTwo",
15+
export const rateStrategyStableOne: IInterestRateStrategyParams = {
16+
name: 'rateStrategyStableOne',
1917
optimalUtilizationRate: new BigNumber(0.8).multipliedBy(oneRay).toFixed(),
2018
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
2119
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
2220
variableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(),
2321
stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
2422
stableRateSlope2: new BigNumber(0.75).multipliedBy(oneRay).toFixed(),
25-
}
26-
27-
// USDC USDT
28-
export const rateStrategyStableThree: IInterestRateStrategyParams = {
29-
name: "rateStrategyStableThree",
30-
optimalUtilizationRate: new BigNumber(0.9).multipliedBy(oneRay).toFixed(),
31-
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
32-
variableRateSlope1: new BigNumber(0.04).multipliedBy(oneRay).toFixed(),
33-
variableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(),
34-
stableRateSlope1: new BigNumber(0.02).multipliedBy(oneRay).toFixed(),
35-
stableRateSlope2: new BigNumber(0.60).multipliedBy(oneRay).toFixed(),
36-
}
37-
38-
// WETH
39-
export const rateStrategyWETH: IInterestRateStrategyParams = {
40-
name: "rateStrategyWETH",
41-
optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
42-
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
43-
variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
44-
variableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
45-
stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
46-
stableRateSlope2: new BigNumber(1).multipliedBy(oneRay).toFixed(),
47-
}
48-
49-
// AAVE
50-
export const rateStrategyAAVE: IInterestRateStrategyParams = {
51-
name: "rateStrategyAAVE",
52-
optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
53-
baseVariableBorrowRate: '0',
54-
variableRateSlope1: '0',
55-
variableRateSlope2: '0',
56-
stableRateSlope1: '0',
57-
stableRateSlope2: '0',
58-
}
59-
60-
// BAT ENJ LINK MANA MKR REN YFI ZRX
61-
export const rateStrategyVolatileOne: IInterestRateStrategyParams = {
62-
name: "rateStrategyVolatileOne",
63-
optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
64-
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
65-
variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
66-
variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
67-
stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
68-
stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
69-
}
70-
71-
// KNC WBTC
72-
export const rateStrategyVolatileTwo: IInterestRateStrategyParams = {
73-
name: "rateStrategyVolatileTwo",
74-
optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
75-
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
76-
variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
77-
variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
78-
stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
79-
stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
80-
}
81-
82-
// SNX
83-
export const rateStrategyVolatileThree: IInterestRateStrategyParams = {
84-
name: "rateStrategyVolatileThree",
85-
optimalUtilizationRate: new BigNumber(0.65).multipliedBy(oneRay).toFixed(),
86-
baseVariableBorrowRate: new BigNumber(0).multipliedBy(oneRay).toFixed(),
87-
variableRateSlope1: new BigNumber(0.08).multipliedBy(oneRay).toFixed(),
88-
variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
89-
stableRateSlope1: new BigNumber(0.1).multipliedBy(oneRay).toFixed(),
90-
stableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
91-
}
92-
93-
94-
export const rateStrategyVolatileFour: IInterestRateStrategyParams = {
95-
name: "rateStrategyVolatileFour",
96-
optimalUtilizationRate: new BigNumber(0.45).multipliedBy(oneRay).toFixed(),
97-
baseVariableBorrowRate: '0',
98-
variableRateSlope1: new BigNumber(0.07).multipliedBy(oneRay).toFixed(),
99-
variableRateSlope2: new BigNumber(3).multipliedBy(oneRay).toFixed(),
100-
stableRateSlope1: '0',
101-
stableRateSlope2: '0',
102-
}
103-
104-
105-
23+
};

0 commit comments

Comments
 (0)