mirror of
https://github.com/Instadapp/aave-protocol-v2.git
synced 2024-07-29 21:47:30 +00:00
Fixed setup
This commit is contained in:
parent
9a92cb08f7
commit
51fee50e50
|
@ -5,6 +5,7 @@ import {ILendingPoolAddressesProvider} from "../interfaces/ILendingPoolAddresses
|
||||||
import {IERC20Detailed} from "../interfaces/IERC20Detailed.sol";
|
import {IERC20Detailed} from "../interfaces/IERC20Detailed.sol";
|
||||||
import {LendingPool} from "../lendingpool/LendingPool.sol";
|
import {LendingPool} from "../lendingpool/LendingPool.sol";
|
||||||
import {AToken} from "../tokenization/AToken.sol";
|
import {AToken} from "../tokenization/AToken.sol";
|
||||||
|
import "@nomiclabs/buidler/console.sol";
|
||||||
|
|
||||||
contract AaveProtocolTestHelpers {
|
contract AaveProtocolTestHelpers {
|
||||||
struct TokenData {
|
struct TokenData {
|
||||||
|
@ -20,7 +21,11 @@ contract AaveProtocolTestHelpers {
|
||||||
|
|
||||||
function getAllReservesTokens() external view returns(TokenData[] memory) {
|
function getAllReservesTokens() external view returns(TokenData[] memory) {
|
||||||
LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool()));
|
LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool()));
|
||||||
|
console.log("Getting reserves...");
|
||||||
|
|
||||||
address[] memory reserves = pool.getReserves();
|
address[] memory reserves = pool.getReserves();
|
||||||
|
console.log("Reserves retrivied");
|
||||||
|
|
||||||
TokenData[] memory reservesTokens = new TokenData[](reserves.length);
|
TokenData[] memory reservesTokens = new TokenData[](reserves.length);
|
||||||
for (uint256 i = 0; i < reserves.length; i++) {
|
for (uint256 i = 0; i < reserves.length; i++) {
|
||||||
reservesTokens[i] = TokenData({
|
reservesTokens[i] = TokenData({
|
||||||
|
@ -33,10 +38,15 @@ contract AaveProtocolTestHelpers {
|
||||||
|
|
||||||
function getAllATokens() external view returns(TokenData[] memory) {
|
function getAllATokens() external view returns(TokenData[] memory) {
|
||||||
LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool()));
|
LendingPool pool = LendingPool(payable(ADDRESSES_PROVIDER.getLendingPool()));
|
||||||
|
|
||||||
|
console.log("Getting all the tokens...");
|
||||||
address[] memory reserves = pool.getReserves();
|
address[] memory reserves = pool.getReserves();
|
||||||
|
|
||||||
|
console.log("Reserves retrivied");
|
||||||
TokenData[] memory aTokens = new TokenData[](reserves.length);
|
TokenData[] memory aTokens = new TokenData[](reserves.length);
|
||||||
for (uint256 i = 0; i < reserves.length; i++) {
|
for (uint256 i = 0; i < reserves.length; i++) {
|
||||||
(,,,address aTokenAddress,,,,,) = pool.getReserveConfigurationData(reserves[i]);
|
console.log("Getting configuration for reserve %s", i);
|
||||||
|
(,,,,address aTokenAddress,,,,) = pool.getReserveConfigurationData(reserves[i]);
|
||||||
aTokens[i] = TokenData({
|
aTokens[i] = TokenData({
|
||||||
symbol: AToken(aTokenAddress).symbol(),
|
symbol: AToken(aTokenAddress).symbol(),
|
||||||
tokenAddress: aTokenAddress
|
tokenAddress: aTokenAddress
|
||||||
|
|
|
@ -44,36 +44,36 @@
|
||||||
},
|
},
|
||||||
"LendingPool": {
|
"LendingPool": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x820ED3d0675676203514f5fd76E5Ac40c9F0c4Bd"
|
"address": "0xA10958a24032283FbE2D23cedf264d6eC9411CBA"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"PriceOracle": {
|
"PriceOracle": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xe1B3b8F6b298b52bCd15357ED29e65e66a4045fF",
|
"address": "0x8731324a6C09a1745bD15009Dc8FcceF11c05F4a",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MockAggregator": {
|
"MockAggregator": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xD83D2773a7873ae2b5f8Fb92097e20a8C64F691E",
|
"address": "0x474d9b0D5F1Bb1602711F9346743a7a7478d6f52",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ChainlinkProxyPriceProvider": {
|
"ChainlinkProxyPriceProvider": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x474d9b0D5F1Bb1602711F9346743a7a7478d6f52",
|
"address": "0xf91aC1098F3b154671Ce83290114aaE45ac0225f",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"LendingRateOracle": {
|
"LendingRateOracle": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xFc01AF83D78742DfD42631a352e33f8098e7274B",
|
"address": "0xf4830d6b1D70C8595d3BD8A63f9ed9F636DB9ef2",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"DefaultReserveInterestRateStrategy": {
|
"DefaultReserveInterestRateStrategy": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x603A373A1571783bD82b708C20a5A4b019BAB78F",
|
"address": "0xFf130817Aa9863B3D809A2A11617c05646245d80",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -85,35 +85,35 @@
|
||||||
},
|
},
|
||||||
"MockOneSplit": {
|
"MockOneSplit": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xd44937448A9f229bfae84e7d256810Ba4C4a93cC",
|
"address": "0xe5a5a5b78F165C875EE2264a8743570176eA39d9",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"OneSplitAdapter": {
|
"OneSplitAdapter": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x70c5a4348710Fa80eE8f2bD2eD5243d1bAB90752",
|
"address": "0x828C9C41Fae6113C1DEA9056Dcd9C85A19002d52",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"TokenDistributor": {
|
"TokenDistributor": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xbCf57D16d9d63aDDea3c2056A1de2A33ebD353F0"
|
"address": "0x7d40dD74d3aE1a7e4A7dd08eaE899e85940563cd"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"InitializableAdminUpgradeabilityProxy": {
|
"InitializableAdminUpgradeabilityProxy": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xbCf57D16d9d63aDDea3c2056A1de2A33ebD353F0",
|
"address": "0x7d40dD74d3aE1a7e4A7dd08eaE899e85940563cd",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"MockFlashLoanReceiver": {
|
"MockFlashLoanReceiver": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xe5a5a5b78F165C875EE2264a8743570176eA39d9"
|
"address": "0xB660Fdd109a95718cB9d20E3A89EE6cE342aDcB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"WalletBalanceProvider": {
|
"WalletBalanceProvider": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0x828C9C41Fae6113C1DEA9056Dcd9C85A19002d52",
|
"address": "0x830bceA96E56DBC1F8578f75fBaC0AF16B32A07d",
|
||||||
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
"deployer": "0xc783df8a850f42e7F7e57013759C285caa701eB6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -257,7 +257,7 @@
|
||||||
},
|
},
|
||||||
"AaveProtocolTestHelpers": {
|
"AaveProtocolTestHelpers": {
|
||||||
"buidlerevm": {
|
"buidlerevm": {
|
||||||
"address": "0xAb35dEf6f863FC1e91dE4c20A3596b388eB1CFb4"
|
"address": "0xA0AB1cB92A4AF81f84dCd258155B5c25D247b54E"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -145,13 +145,12 @@ const deployLibrary = async(libraryId: eContractid) => {
|
||||||
return library
|
return library
|
||||||
}
|
}
|
||||||
|
|
||||||
export const deployLendingPool = async () => {
|
export const linkLibrariesToArtifact = async(artifact: Artifact) => {
|
||||||
|
|
||||||
const coreLibrary = await deployLibrary(eContractid.CoreLibrary);
|
const coreLibrary = await deployLibrary(eContractid.CoreLibrary);
|
||||||
const userLogic = await deployLibrary(eContractid.UserLogic);
|
const userLogic = await deployLibrary(eContractid.UserLogic);
|
||||||
const reserveLogic = await deployLibrary(eContractid.ReserveLogic);
|
const reserveLogic = await deployLibrary(eContractid.ReserveLogic);
|
||||||
|
|
||||||
console.log("Deployed user logic and reserve logic, addresses:", userLogic.address, reserveLogic.address)
|
|
||||||
const genericLogicArtifact = await readArtifact(
|
const genericLogicArtifact = await readArtifact(
|
||||||
BRE.config.paths.artifacts,
|
BRE.config.paths.artifacts,
|
||||||
eContractid.GenericLogic
|
eContractid.GenericLogic
|
||||||
|
@ -168,8 +167,6 @@ export const deployLendingPool = async () => {
|
||||||
);
|
);
|
||||||
|
|
||||||
const genericLogic = await (await genericLogicFactory.deploy()).deployed();
|
const genericLogic = await (await genericLogicFactory.deploy()).deployed();
|
||||||
console.log("Deployed generic logic, addresses:", genericLogic.address)
|
|
||||||
|
|
||||||
|
|
||||||
const validationLogicArtifact = await readArtifact(
|
const validationLogicArtifact = await readArtifact(
|
||||||
BRE.config.paths.artifacts,
|
BRE.config.paths.artifacts,
|
||||||
|
@ -189,25 +186,33 @@ export const deployLendingPool = async () => {
|
||||||
|
|
||||||
const validationLogic = await (await validationLogicFactory.deploy()).deployed();
|
const validationLogic = await (await validationLogicFactory.deploy()).deployed();
|
||||||
|
|
||||||
console.log("Deployed validation logic, address:", validationLogic.address)
|
|
||||||
|
|
||||||
const lendingPoolArtifact = await readArtifact(
|
const linkedBytecode = linkBytecode(artifact, {
|
||||||
BRE.config.paths.artifacts,
|
|
||||||
eContractid.LendingPool
|
|
||||||
);
|
|
||||||
const linkedBytecode = linkBytecode(lendingPoolArtifact, {
|
|
||||||
[eContractid.CoreLibrary]: coreLibrary.address,
|
[eContractid.CoreLibrary]: coreLibrary.address,
|
||||||
[eContractid.UserLogic]: userLogic.address,
|
[eContractid.UserLogic]: userLogic.address,
|
||||||
[eContractid.ReserveLogic] : reserveLogic.address,
|
[eContractid.ReserveLogic] : reserveLogic.address,
|
||||||
[eContractid.GenericLogic] : genericLogic.address,
|
[eContractid.GenericLogic] : genericLogic.address,
|
||||||
[eContractid.ValidationLogic] : validationLogic.address
|
[eContractid.ValidationLogic] : validationLogic.address
|
||||||
});
|
});
|
||||||
const LendingPoolFactory = await BRE.ethers.getContractFactory(
|
const factory = await BRE.ethers.getContractFactory(
|
||||||
lendingPoolArtifact.abi,
|
artifact.abi,
|
||||||
linkedBytecode
|
linkedBytecode
|
||||||
);
|
);
|
||||||
|
|
||||||
const lendingPool = await LendingPoolFactory.deploy();
|
return factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
export const deployLendingPool = async () => {
|
||||||
|
|
||||||
|
const lendingPoolArtifact = await readArtifact(
|
||||||
|
BRE.config.paths.artifacts,
|
||||||
|
eContractid.LendingPool
|
||||||
|
);
|
||||||
|
|
||||||
|
const factory = await linkLibrariesToArtifact(lendingPoolArtifact);
|
||||||
|
|
||||||
|
const lendingPool = await factory.deploy();
|
||||||
return (await lendingPool.deployed()) as LendingPool;
|
return (await lendingPool.deployed()) as LendingPool;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -232,11 +237,19 @@ export const deployChainlinkProxyPriceProvider = async ([
|
||||||
export const deployLendingRateOracle = async () =>
|
export const deployLendingRateOracle = async () =>
|
||||||
await deployContract<LendingRateOracle>(eContractid.LendingRateOracle, []);
|
await deployContract<LendingRateOracle>(eContractid.LendingRateOracle, []);
|
||||||
|
|
||||||
export const deployLendingPoolLiquidationManager = async () =>
|
export const deployLendingPoolLiquidationManager = async () => {
|
||||||
await deployContract<LendingPoolLiquidationManager>(
|
const liquidationManagerArtifact = await readArtifact(
|
||||||
eContractid.LendingPoolLiquidationManager,
|
BRE.config.paths.artifacts,
|
||||||
[]
|
eContractid.LendingPoolLiquidationManager
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const factory = await linkLibrariesToArtifact(liquidationManagerArtifact);
|
||||||
|
|
||||||
|
const liquidationManager = await factory.deploy();
|
||||||
|
return (await liquidationManager.deployed()) as LendingPoolLiquidationManager;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
export const deployTokenDistributor = async () =>
|
export const deployTokenDistributor = async () =>
|
||||||
await deployContract<TokenDistributor>(eContractid.TokenDistributor, []);
|
await deployContract<TokenDistributor>(eContractid.TokenDistributor, []);
|
||||||
|
@ -289,7 +302,6 @@ export const deployMintableErc20 = async ([name, symbol, decimals]: [
|
||||||
]);
|
]);
|
||||||
|
|
||||||
export const deployDefaultReserveInterestRateStrategy = async ([
|
export const deployDefaultReserveInterestRateStrategy = async ([
|
||||||
reserve,
|
|
||||||
addressesProvider,
|
addressesProvider,
|
||||||
baseVariableBorrowRate,
|
baseVariableBorrowRate,
|
||||||
variableSlope1,
|
variableSlope1,
|
||||||
|
@ -297,7 +309,6 @@ export const deployDefaultReserveInterestRateStrategy = async ([
|
||||||
stableSlope1,
|
stableSlope1,
|
||||||
stableSlope2,
|
stableSlope2,
|
||||||
]: [
|
]: [
|
||||||
tEthereumAddress,
|
|
||||||
tEthereumAddress,
|
tEthereumAddress,
|
||||||
string,
|
string,
|
||||||
string,
|
string,
|
||||||
|
@ -308,7 +319,6 @@ export const deployDefaultReserveInterestRateStrategy = async ([
|
||||||
await deployContract<DefaultReserveInterestRateStrategy>(
|
await deployContract<DefaultReserveInterestRateStrategy>(
|
||||||
eContractid.DefaultReserveInterestRateStrategy,
|
eContractid.DefaultReserveInterestRateStrategy,
|
||||||
[
|
[
|
||||||
reserve,
|
|
||||||
addressesProvider,
|
addressesProvider,
|
||||||
baseVariableBorrowRate,
|
baseVariableBorrowRate,
|
||||||
variableSlope1,
|
variableSlope1,
|
||||||
|
@ -349,15 +359,23 @@ export const getLendingPoolConfiguratorProxy = async (
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getLendingPool = async (address?: tEthereumAddress) => {
|
export const getLendingPool = async (address?: tEthereumAddress) => {
|
||||||
return await getContract<LendingPool>(
|
|
||||||
eContractid.LendingPool,
|
const lendingPoolArtifact = await readArtifact(
|
||||||
|
BRE.config.paths.artifacts,
|
||||||
|
eContractid.LendingPool
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
const factory = await linkLibrariesToArtifact(lendingPoolArtifact);
|
||||||
|
|
||||||
|
return <LendingPool>(await factory.attach(
|
||||||
address ||
|
address ||
|
||||||
(
|
(
|
||||||
await getDb()
|
await getDb()
|
||||||
.get(`${eContractid.LendingPool}.${BRE.network.name}`)
|
.get(`${eContractid.LendingPool}.${BRE.network.name}`)
|
||||||
.value()
|
.value()
|
||||||
).address
|
).address
|
||||||
);
|
));
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getFeeProvider = async (address?: tEthereumAddress) => {
|
export const getFeeProvider = async (address?: tEthereumAddress) => {
|
||||||
|
|
|
@ -194,9 +194,14 @@ const initReserves = async (
|
||||||
string,
|
string,
|
||||||
string
|
string
|
||||||
][])[assetAddressIndex];
|
][])[assetAddressIndex];
|
||||||
const reserveInitialized = await lendingPool.getReserveIsActive(
|
|
||||||
|
console.log("Getting active flag for reserve ", tokenAddress);
|
||||||
|
const {isActive: reserveInitialized} = await lendingPool.getReserveConfigurationData(
|
||||||
tokenAddress
|
tokenAddress
|
||||||
);
|
);
|
||||||
|
console.log("Result ",reserveInitialized);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (reserveInitialized) {
|
if (reserveInitialized) {
|
||||||
console.log(
|
console.log(
|
||||||
|
@ -223,7 +228,6 @@ const initReserves = async (
|
||||||
];
|
];
|
||||||
const rateStrategyContract = await deployDefaultReserveInterestRateStrategy(
|
const rateStrategyContract = await deployDefaultReserveInterestRateStrategy(
|
||||||
[
|
[
|
||||||
tokenAddress,
|
|
||||||
lendingPoolAddressesProvider.address,
|
lendingPoolAddressesProvider.address,
|
||||||
baseVariableBorrowRate,
|
baseVariableBorrowRate,
|
||||||
variableRateSlope1,
|
variableRateSlope1,
|
||||||
|
@ -233,6 +237,8 @@ const initReserves = async (
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
console.log("Interest rate strategy deployed");
|
||||||
|
|
||||||
if (process.env.POOL === AavePools.secondary) {
|
if (process.env.POOL === AavePools.secondary) {
|
||||||
if (assetSymbol.search("UNI") === -1) {
|
if (assetSymbol.search("UNI") === -1) {
|
||||||
assetSymbol = `Uni${assetSymbol}`;
|
assetSymbol = `Uni${assetSymbol}`;
|
||||||
|
@ -275,7 +281,7 @@ const enableReservesToBorrow = async (
|
||||||
string,
|
string,
|
||||||
string
|
string
|
||||||
][])[assetAddressIndex];
|
][])[assetAddressIndex];
|
||||||
const borrowingAlreadyEnabled = await lendingPool.isReserveBorrowingEnabled(
|
const {borrowingEnabled: borrowingAlreadyEnabled} = await lendingPool.getReserveConfigurationData(
|
||||||
tokenAddress
|
tokenAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -317,7 +323,7 @@ const enableReservesAsCollateral = async (
|
||||||
string,
|
string,
|
||||||
string
|
string
|
||||||
][])[assetAddressIndex];
|
][])[assetAddressIndex];
|
||||||
const alreadyEnabled = await lendingPool.isReserveUsageAsCollateralEnabled(
|
const {usageAsCollateralEnabled: alreadyEnabled} = await lendingPool.getReserveConfigurationData(
|
||||||
tokenAddress
|
tokenAddress
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -406,7 +412,7 @@ const buildTestEnv = async (deployer: Signer, secondaryWallet: Signer) => {
|
||||||
address
|
address
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log("implementation set, address:", lendingPoolProxy)
|
console.log("implementation set, address:", lendingPoolProxy.address)
|
||||||
|
|
||||||
await insertContractAddressInDb(
|
await insertContractAddressInDb(
|
||||||
eContractid.LendingPool,
|
eContractid.LendingPool,
|
||||||
|
|
|
@ -75,15 +75,30 @@ export async function initializeMakeSuite() {
|
||||||
}
|
}
|
||||||
testEnv.deployer = deployer;
|
testEnv.deployer = deployer;
|
||||||
testEnv.pool = await getLendingPool();
|
testEnv.pool = await getLendingPool();
|
||||||
|
console.log("Pool loaded");
|
||||||
|
|
||||||
testEnv.configurator = await getLendingPoolConfiguratorProxy();
|
testEnv.configurator = await getLendingPoolConfiguratorProxy();
|
||||||
|
console.log("Configurator loaded");
|
||||||
|
|
||||||
testEnv.oracle = await getPriceOracle();
|
testEnv.oracle = await getPriceOracle();
|
||||||
|
console.log("oracle loaded");
|
||||||
testEnv.addressesProvider = await getLendingPoolAddressesProvider();
|
testEnv.addressesProvider = await getLendingPoolAddressesProvider();
|
||||||
|
console.log("addresses provider loaded");
|
||||||
|
|
||||||
testEnv.helpersContract = await getAaveProtocolTestHelpers();
|
testEnv.helpersContract = await getAaveProtocolTestHelpers();
|
||||||
|
|
||||||
|
console.log("helpers loaded");
|
||||||
|
|
||||||
const aDaiAddress = (await testEnv.helpersContract.getAllATokens()).find(
|
const aDaiAddress = (await testEnv.helpersContract.getAllATokens()).find(
|
||||||
(aToken) => aToken.symbol === "aDAI"
|
(aToken) => aToken.symbol === "aDAI"
|
||||||
)?.tokenAddress;
|
)?.tokenAddress;
|
||||||
|
|
||||||
|
console.log("getting reserves");
|
||||||
|
|
||||||
const reservesTokens = await testEnv.helpersContract.getAllReservesTokens();
|
const reservesTokens = await testEnv.helpersContract.getAllReservesTokens();
|
||||||
|
|
||||||
|
console.log("reserve tokens loaded");
|
||||||
|
|
||||||
const daiAddress = reservesTokens.find(token => token.symbol === "DAI")?.tokenAddress;
|
const daiAddress = reservesTokens.find(token => token.symbol === "DAI")?.tokenAddress;
|
||||||
const usdcAddress = reservesTokens.find(token => token.symbol === "USDC")?.tokenAddress;
|
const usdcAddress = reservesTokens.find(token => token.symbol === "USDC")?.tokenAddress;
|
||||||
if (!aDaiAddress) {
|
if (!aDaiAddress) {
|
||||||
|
|
Loading…
Reference in New Issue
Block a user