mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			102 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			102 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { expect } from 'chai';
 | |
| import { createRandomAddress } from '../../helpers/misc-utils';
 | |
| import { makeSuite, TestEnv } from './helpers/make-suite';
 | |
| import { ProtocolErrors } from '../../helpers/types';
 | |
| import { ethers } from 'ethers';
 | |
| import { ZERO_ADDRESS } from '../../helpers/constants';
 | |
| import { waitForTx } from '../../helpers/misc-utils';
 | |
| import { deployLendingPool } from '../../helpers/contracts-deployments';
 | |
| 
 | |
| const { utils } = ethers;
 | |
| 
 | |
| makeSuite('LendingPoolAddressesProvider', (testEnv: TestEnv) => {
 | |
|   it('Test the accessibility of the LendingPoolAddressesProvider', async () => {
 | |
|     const { addressesProvider, users } = testEnv;
 | |
|     const mockAddress = createRandomAddress();
 | |
|     const { INVALID_OWNER_REVERT_MSG } = ProtocolErrors;
 | |
| 
 | |
|     await addressesProvider.transferOwnership(users[1].address);
 | |
| 
 | |
|     for (const contractFunction of [
 | |
|       addressesProvider.setMarketId,
 | |
|       addressesProvider.setLendingPoolImpl,
 | |
|       addressesProvider.setLendingPoolConfiguratorImpl,
 | |
|       addressesProvider.setLendingPoolCollateralManager,
 | |
|       addressesProvider.setPoolAdmin,
 | |
|       addressesProvider.setPriceOracle,
 | |
|       addressesProvider.setLendingRateOracle,
 | |
|     ]) {
 | |
|       await expect(contractFunction(mockAddress)).to.be.revertedWith(INVALID_OWNER_REVERT_MSG);
 | |
|     }
 | |
| 
 | |
|     await expect(
 | |
|       addressesProvider.setAddress(utils.keccak256(utils.toUtf8Bytes('RANDOM_ID')), mockAddress)
 | |
|     ).to.be.revertedWith(INVALID_OWNER_REVERT_MSG);
 | |
| 
 | |
|     await expect(
 | |
|       addressesProvider.setAddressAsProxy(
 | |
|         utils.keccak256(utils.toUtf8Bytes('RANDOM_ID')),
 | |
|         mockAddress
 | |
|       )
 | |
|     ).to.be.revertedWith(INVALID_OWNER_REVERT_MSG);
 | |
|   });
 | |
| 
 | |
|   it('Tests adding  a proxied address with `setAddressAsProxy()`', async () => {
 | |
|     const { addressesProvider, users } = testEnv;
 | |
|     const { INVALID_OWNER_REVERT_MSG } = ProtocolErrors;
 | |
| 
 | |
|     const currentAddressesProviderOwner = users[1];
 | |
| 
 | |
|     const mockLendingPool = await deployLendingPool();
 | |
|     const proxiedAddressId = utils.keccak256(utils.toUtf8Bytes('RANDOM_PROXIED'));
 | |
| 
 | |
|     const proxiedAddressSetReceipt = await waitForTx(
 | |
|       await addressesProvider
 | |
|         .connect(currentAddressesProviderOwner.signer)
 | |
|         .setAddressAsProxy(proxiedAddressId, mockLendingPool.address)
 | |
|     );
 | |
| 
 | |
|     if (!proxiedAddressSetReceipt.events || proxiedAddressSetReceipt.events?.length < 1) {
 | |
|       throw new Error('INVALID_EVENT_EMMITED');
 | |
|     }
 | |
| 
 | |
|     expect(proxiedAddressSetReceipt.events[0].event).to.be.equal('ProxyCreated');
 | |
|     expect(proxiedAddressSetReceipt.events[1].event).to.be.equal('AddressSet');
 | |
|     expect(proxiedAddressSetReceipt.events[1].args?.id).to.be.equal(proxiedAddressId);
 | |
|     expect(proxiedAddressSetReceipt.events[1].args?.newAddress).to.be.equal(
 | |
|       mockLendingPool.address
 | |
|     );
 | |
|     expect(proxiedAddressSetReceipt.events[1].args?.hasProxy).to.be.equal(true);
 | |
|   });
 | |
| 
 | |
|   it('Tests adding a non proxied address with `setAddress()`', async () => {
 | |
|     const { addressesProvider, users } = testEnv;
 | |
|     const { INVALID_OWNER_REVERT_MSG } = ProtocolErrors;
 | |
| 
 | |
|     const currentAddressesProviderOwner = users[1];
 | |
|     const mockNonProxiedAddress = createRandomAddress();
 | |
|     const nonProxiedAddressId = utils.keccak256(utils.toUtf8Bytes('RANDOM_NON_PROXIED'));
 | |
| 
 | |
|     const nonProxiedAddressSetReceipt = await waitForTx(
 | |
|       await addressesProvider
 | |
|         .connect(currentAddressesProviderOwner.signer)
 | |
|         .setAddress(nonProxiedAddressId, mockNonProxiedAddress)
 | |
|     );
 | |
| 
 | |
|     expect(mockNonProxiedAddress.toLowerCase()).to.be.equal(
 | |
|       (await addressesProvider.getAddress(nonProxiedAddressId)).toLowerCase()
 | |
|     );
 | |
| 
 | |
|     if (!nonProxiedAddressSetReceipt.events || nonProxiedAddressSetReceipt.events?.length < 1) {
 | |
|       throw new Error('INVALID_EVENT_EMMITED');
 | |
|     }
 | |
| 
 | |
|     expect(nonProxiedAddressSetReceipt.events[0].event).to.be.equal('AddressSet');
 | |
|     expect(nonProxiedAddressSetReceipt.events[0].args?.id).to.be.equal(nonProxiedAddressId);
 | |
|     expect(nonProxiedAddressSetReceipt.events[0].args?.newAddress).to.be.equal(
 | |
|       mockNonProxiedAddress
 | |
|     );
 | |
|     expect(nonProxiedAddressSetReceipt.events[0].args?.hasProxy).to.be.equal(false);
 | |
|   });
 | |
| });
 | 
