diff --git a/helpers/constants.ts b/helpers/constants.ts index e5e42833..98399669 100644 --- a/helpers/constants.ts +++ b/helpers/constants.ts @@ -87,8 +87,9 @@ export const MOCK_CHAINLINK_AGGREGATORS_USD_CURVE_AMM_PRICES = { USDC: oneUsd.toFixed(), USDT: oneUsd.toFixed(), USD: oneUsd.toFixed(), - a3CRVGauge: oneUsd.multipliedBy('1.0536').toFixed(), - saCRVGauge: oneUsd.multipliedBy('1.0318').toFixed(), + a3CRV: oneUsd.multipliedBy('1.0536').toFixed(), + saCRV: oneUsd.multipliedBy('1.0318').toFixed(), + '3CRV': oneUsd.multipliedBy('1.0179').toFixed(), }; export const CRV_TOKEN = { diff --git a/helpers/types.ts b/helpers/types.ts index b4e2aa3c..2fc0c229 100644 --- a/helpers/types.ts +++ b/helpers/types.ts @@ -246,8 +246,9 @@ export interface iAssetBase { xSUSHI: T; STAKE: T; REW: T; - a3CRVGauge: T; - saCRVGauge: T; + a3CRV: T; + saCRV: T; + '3CRV': T; } export type iAssetsWithoutETH = Omit, 'ETH'>; @@ -306,7 +307,7 @@ export type iLpPoolAssets = Pick< export type iUsdLpPoolAssets = Pick< iAssetsWithoutUSD, - 'DAI' | 'SUSD' | 'USDC' | 'USDT' | 'a3CRVGauge' | 'saCRVGauge' + 'DAI' | 'SUSD' | 'USDC' | 'USDT' | 'a3CRV' | 'saCRV' | '3CRV' >; export type iMaticPoolAssets = Pick< diff --git a/markets/usd-amm/index.ts b/markets/usd-amm/index.ts index 464f9b6d..b0e8a8ab 100644 --- a/markets/usd-amm/index.ts +++ b/markets/usd-amm/index.ts @@ -9,8 +9,6 @@ import { strategyDAI, strategyUSDC, strategyUSDT, - strategyWETH, - strategyWBTC, strategySUSD, strategyCurveLP, } from './reservesConfigs'; @@ -174,16 +172,18 @@ export const AmmConfig: IUsdAmmConfiguration = { SUSD: '0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94', USDC: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6', USDT: '0x3E7d1eAB13ad0104d2750B8863b489D65364e32D', - a3CRVGauge: '0xe19781CB322ff0Bd31ad4D8C01e91A67e', // Oracle deployed at fork - saCRVGauge: '0x602df949e38335714E135ce94180255Dae79a659', // Oracle deployed at fork + a3CRV: '0x63180F55F421fEC4DD2C778bcE565D3fde03f931', // Oracle deployed at fork + saCRV: '0x1eD0819bD513A0B9271Fa831f1C3dbab8d80C36c', // Oracle deployed at fork + '3CRV': '0x03c3614b6888842EcCAc71ADA1Ef1ad8e54f6D89', // Oracle deployed at fork }, [eEthereumNetwork.tenderlyMain]: { DAI: '0xAed0c38402a5d19df6E4c03F4E2DceD6e29c1ee9', SUSD: '0xad35Bd71b9aFE6e4bDc266B345c198eaDEf9Ad94', USDC: '0x8fFfFfd4AfB6115b954Bd326cbe7B4BA576818f6', USDT: '0x3E7d1eAB13ad0104d2750B8863b489D65364e32D', - a3CRVGauge: '0xe19781CB322ff0Bd31ad4D8C01e91A67e', // Oracle deployed at fork - saCRVGauge: '0x602df949e38335714E135ce94180255Dae79a659', // Oracle deployed at fork + a3CRV: '0x63180F55F421fEC4DD2C778bcE565D3fde03f931', // Oracle deployed at fork + saCRV: '0x1eD0819bD513A0B9271Fa831f1C3dbab8d80C36c', // Oracle deployed at fork + '3CRV': '0x03c3614b6888842EcCAc71ADA1Ef1ad8e54f6D89', // Oracle deployed at fork }, }, ATokenDomainSeparator: { @@ -239,8 +239,9 @@ export const AmmConfig: IUsdAmmConfiguration = { SUSD: strategySUSD, USDC: strategyUSDC, USDT: strategyUSDT, - a3CRVGauge: strategyCurveLP, - saCRVGauge: strategyCurveLP, + a3CRV: strategyCurveLP, + saCRV: strategyCurveLP, + '3CRV': strategyCurveLP, }, ReserveAssets: { [eEthereumNetwork.buidlerevm]: {}, @@ -253,16 +254,18 @@ export const AmmConfig: IUsdAmmConfiguration = { SUSD: '0x57Ab1ec28D129707052df4dF418D58a2D46d5f51', USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7', - a3CRVGauge: '0xd662908ADA2Ea1916B3318327A97eB18aD588b5d', - saCRVGauge: '0x462253b8F74B72304c145DB0e4Eebd326B22ca39', + a3CRV: '0xFd2a8fA60Abd58Efe3EeE34dd494cD491dC14900', + saCRV: '0x02d341CcB60fAaf662bC0554d13778015d1b285C', + '3CRV': '0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490', }, [eEthereumNetwork.tenderlyMain]: { DAI: '0x6B175474E89094C44Da98b954EedeAC495271d0F', SUSD: '0x57Ab1ec28D129707052df4dF418D58a2D46d5f51', USDC: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', USDT: '0xdAC17F958D2ee523a2206206994597C13D831ec7', - a3CRVGauge: '0xd662908ADA2Ea1916B3318327A97eB18aD588b5d', - saCRVGauge: '0x462253b8F74B72304c145DB0e4Eebd326B22ca39', + a3CRV: '0xFd2a8fA60Abd58Efe3EeE34dd494cD491dC14900', + saCRV: '0x02d341CcB60fAaf662bC0554d13778015d1b285C', + '3CRV': '0x6c3F90f043a72FA612cbac8115EE7e52BDe6E490', }, }, }; diff --git a/markets/usd-amm/reservesConfigs.ts b/markets/usd-amm/reservesConfigs.ts index 10122f2c..3dc42a08 100644 --- a/markets/usd-amm/reservesConfigs.ts +++ b/markets/usd-amm/reservesConfigs.ts @@ -81,6 +81,6 @@ export const strategyCurveLP: IReserveParams = { borrowingEnabled: false, stableBorrowRateEnabled: false, reserveDecimals: '18', - aTokenImpl: eContractid.CurveRewardsAwareAToken, + aTokenImpl: eContractid.CurveGaugeRewardsAwareAToken, reserveFactor: '2000', }; diff --git a/tasks/migrations/usd.mainnet.ts b/tasks/migrations/usd.mainnet.ts index f91a9cd0..a0bd61ef 100644 --- a/tasks/migrations/usd.mainnet.ts +++ b/tasks/migrations/usd.mainnet.ts @@ -1,16 +1,21 @@ import { task } from 'hardhat/config'; import { checkVerification } from '../../helpers/etherscan-verification'; -import { ConfigNames } from '../../helpers/configuration'; +import { + ConfigNames, + getEmergencyAdmin, + getGenesisPoolAdmin, + loadPoolConfig, +} from '../../helpers/configuration'; import { printContracts } from '../../helpers/misc-utils'; import { usingTenderly } from '../../helpers/tenderly-utils'; -task('usd:mainnet', 'Deploy development enviroment') +task('usd:mainnet', 'Deploy development environment') .addFlag('verify', 'Verify contracts at Etherscan') .addFlag('skipRegistry', 'Skip addresses provider registration at Addresses Provider Registry') .setAction(async ({ verify, skipRegistry }, DRE) => { const POOL_NAME = ConfigNames.Usd; await DRE.run('set-DRE'); - + const poolConfig = loadPoolConfig(POOL_NAME); // Prevent loss of gas verifying all the needed ENVs for Etherscan verification if (verify) { checkVerification(); @@ -18,6 +23,13 @@ task('usd:mainnet', 'Deploy development enviroment') console.log('Migration started\n'); + console.log('0. Deploy Aave Curve Treasury'); + await DRE.run('deploy-curve-treasury', { + treasuryAdmin: await getGenesisPoolAdmin(poolConfig), // TBD + proxyAdmin: await getEmergencyAdmin(poolConfig), // TBD, address provider? + collector: poolConfig.ReserveFactorTreasuryAddress, + }); + console.log('1. Deploy address provider'); await DRE.run('full:deploy-address-provider', { pool: POOL_NAME, skipRegistry }); @@ -46,8 +58,8 @@ task('usd:mainnet', 'Deploy development enviroment') } if (usingTenderly()) { - const postDeployHead = DRE.tenderlyRPC.getHead(); - const postDeployFork = DRE.tenderlyRPC.getFork(); + const postDeployHead = DRE.tenderlyNetwork.getHead(); + const postDeployFork = DRE.tenderlyNetwork.getFork(); console.log('Tenderly Info'); console.log('- Head', postDeployHead); console.log('- Fork', postDeployFork);