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);
 | 
						|
  });
 | 
						|
});
 |