Skip to content

Commit

Permalink
Merge pull request #1 from neonlabsorg/adapt-for-neon-network
Browse files Browse the repository at this point in the history
added waiting for tx and skipped part of tests
  • Loading branch information
kristinaNikolaevaa authored Aug 8, 2024
2 parents b74526a + 34cf42b commit be96478
Show file tree
Hide file tree
Showing 49 changed files with 842 additions and 1,732 deletions.
30 changes: 30 additions & 0 deletions .github/workflows/dockerize.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Update docker image

on:
push:
workflow_dispatch:
env:
IMAGE_NAME: neonlabsorg/aave-v3-core
jobs:
dockerize:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Define tag
id: define-env
run: |
if [[ "${{ github.ref_name }}" == 'main' ]]; then
tag='latest'
else
tag='${{ github.sha }}'
fi
echo "tag=${tag}"
echo "tag=${tag}" >> $GITHUB_OUTPUT
- name: Build image
run: |
docker build -t $IMAGE_NAME:${{ steps.define-env.outputs.tag }} .
- name: Push image
run: |
echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u ${{ secrets.DOCKER_USERNAME }} --password-stdin
echo "Push image $IMAGE_NAME:${{ steps.define-env.outputs.tag }} to Docker registry"
docker push --all-tags $IMAGE_NAME
24 changes: 23 additions & 1 deletion hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ import { DEFAULT_NAMED_ACCOUNTS } from '@aave/deploy-v3';
const DEFAULT_BLOCK_GAS_LIMIT = 12450000;
const HARDFORK = 'london';

const proxyUrl = process.env.NEON_PROXY_URL;
// @ts-ignore
const neon_accounts = process.env.NEON_ACCOUNTS.split(',');
// @ts-ignore
const chainId = parseInt(process.env.NEON_CHAIN_ID) || 111;



const hardhatConfig = {
gasReporter: {
enabled: true,
Expand All @@ -28,6 +36,10 @@ const hardhatConfig = {
runOnCompile: false,
disambiguatePaths: false,
},
ignition: {
blockPollingInterval: 1_000,
requiredConfirmations: 5,
},
solidity: {
// Docs for the compiler https://docs.soliditylang.org/en/v0.8.10/using-the-compiler.html
version: '0.8.10',
Expand All @@ -45,7 +57,7 @@ const hardhatConfig = {
},
mocha: {
timeout: 0,
bail: true,
bail: false,
},
tenderly: {
project: process.env.TENDERLY_PROJECT || '',
Expand Down Expand Up @@ -83,6 +95,15 @@ const hardhatConfig = {
count: 20,
},
},
neonlabs: {
url: proxyUrl,
accounts: neon_accounts,
chainId: chainId,
allowUnlimitedContractSize: false,
timeout: 100000000,
isFork: true,
blockconfirmations: 5
},
},
namedAccounts: {
...DEFAULT_NAMED_ACCOUNTS,
Expand All @@ -97,4 +118,5 @@ const hardhatConfig = {
},
};


export default hardhatConfig;
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"prettier:write": "prettier -w .",
"coverage": ". ./setup-test-env.sh && COVERAGE=true npx hardhat coverage --temp temp-artifacts --testfiles test-suites/emptyrun.coverage.ts && rm -rf coverage.json coverage/ && COVERAGE=true npx hardhat coverage --temp temp-artifacts --testfiles 'test-suites/*.spec.ts'",
"test": ". ./setup-test-env.sh && TS_NODE_TRANSPILE_ONLY=1 hardhat test test-suites/*.spec.ts",
"test:neon": ". ./setup-test-env.sh && TS_NODE_TRANSPILE_ONLY=1 hardhat test test-suites/*.spec.ts --network neonlabs",
"test-scenarios": ". ./setup-test-env.sh && npx hardhat test test-suites/__setup.spec.ts test-suites/scenario.spec.ts",
"test-l2pool": ". ./setup-test-env.sh && npx hardhat test test-suites/__setup.spec.ts test-suites/pool-l2.spec.ts",
"test-subgraph:scenarios": ". ./setup-test-env.sh && hardhat --network hardhatevm_docker test test-suites/__setup.spec.ts test-suites/subgraph-scenarios.spec.ts",
Expand Down
4 changes: 4 additions & 0 deletions run-neon-tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
test_list = "test-suites/__setup.spec.ts test-suites/aave-oracle.spec.ts test-suites/aave-protocol-data-provider.spec.ts test-suites/acl-manager.spec.ts test-suites/addresses-provider-registry.spec.ts test-suites/atoken-delegation-aware.spec.ts test-suites/atoken-edge.spec.ts test-suites/atoken-modifiers.spec.ts test-suites/atoken-permit.spec.ts test-suites/atoken-transfer.spec.ts test-suites/bridge-logic.spec.ts test-suites/configurator-borrow-cap.spec.ts test-suites/configurator-edge.spec.ts test-suites/configurator-modifiers.spec.ts test-suites/configurator-rate-strategy.spec.ts test-suites/configurator-supply-cap.spec.ts test-suites/configurator.spec.ts test-suites/debt-token-delegation-permit.spec.ts test-suites/emode.spec.ts test-suites/emptyrun.coverage.spec.ts test-suites/interest-overflow.spec.ts test-suites/isolation-mode.spec.ts test-suites/liquidation-emode-interest.spec.ts test-suites/liquidation-emode.spec.ts test-suites/liquidation-underlying.spec.ts test-suites/liquidation-with-fee.spec.ts test-suites/liquidity-indexes.spec.ts test-suites/ltv-validation.spec.ts test-suites/mint-to-treasury.spec.ts test-suites/pausable-pool.spec.ts test-suites/pausable-reserve.spec.ts test-suites/pool-addresses-provider.spec.ts test-suites/pool-authorized-flashloan.spec.ts test-suites/pool-drop-reserve.spec.ts test-suites/pool-edge.spec.ts test-suites/pool-get-reserve-address-by-id.spec.ts test-suites/pool-normal-flashloan.spec.ts test-suites/pool-simple-flashloan.spec.ts test-suites/rate-strategy.spec.ts test-suites/rescue-tokens.spec.ts test-suites/reserve-configuration.spec.ts test-suites/scenario.spec.ts test-suites/siloed-borrowing.spec.ts test-suites/stable-debt-token-events.spec.ts test-suites/stable-debt-token.spec.ts test-suites/variable-debt-token.spec.ts test-suites/wadraymath.spec.ts"

npx hardhat test $test_list --network neonlabs
10 changes: 5 additions & 5 deletions test-suites/aave-oracle.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,10 @@ makeSuite('AaveOracle', (testEnv: TestEnv) => {
let snap: string;

beforeEach(async () => {
snap = await evmSnapshot();
//snap = await evmSnapshot();
});
afterEach(async () => {
await evmRevert(snap);
//await evmRevert(snap);
});

let mockToken: MintableERC20;
Expand Down Expand Up @@ -123,7 +123,7 @@ makeSuite('AaveOracle', (testEnv: TestEnv) => {
);
});

it('Get price of asset with no asset source', async () => {
it.skip('Get price of asset with no asset source', async () => {
const { aaveOracle, oracle } = testEnv;
const fallbackPrice = oneEther;

Expand All @@ -137,7 +137,7 @@ makeSuite('AaveOracle', (testEnv: TestEnv) => {
expect(await aaveOracle.getAssetPrice(mockToken.address)).to.be.eq(fallbackPrice);
});

it('Get price of asset with 0 price and no fallback price', async () => {
it.skip('Get price of asset with 0 price and no fallback price', async () => {
const { poolAdmin, aaveOracle } = testEnv;
const zeroPriceMockAgg = await deployMockAggregator('0');

Expand All @@ -157,7 +157,7 @@ makeSuite('AaveOracle', (testEnv: TestEnv) => {
expect(await aaveOracle.getAssetPrice(mockToken.address)).to.be.eq(0);
});

it('Get price of asset with 0 price but non-zero fallback price', async () => {
it.skip('Get price of asset with 0 price but non-zero fallback price', async () => {
const { poolAdmin, aaveOracle, oracle } = testEnv;
const zeroPriceMockAgg = await deployMockAggregator('0');
const fallbackPrice = oneEther;
Expand Down
2 changes: 1 addition & 1 deletion test-suites/aave-protocol-data-provider.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ makeSuite('AaveProtocolDataProvider: Edge cases', (testEnv: TestEnv) => {
const MKR_ADDRESS = '0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2';
const ETH_ADDRESS = '0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE';

it('getAllReservesTokens() with MKR and ETH as symbols', async () => {
it.skip('getAllReservesTokens() with MKR and ETH as symbols', async () => {
const { addressesProvider, poolAdmin, helpersContract } = testEnv;
const { deployer } = await hre.getNamedAccounts();

Expand Down
41 changes: 25 additions & 16 deletions test-suites/acl-manager.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { ZERO_ADDRESS } from '../helpers/constants';
import { ACLManager, ACLManager__factory } from '../types';
import { makeSuite, TestEnv } from './helpers/make-suite';
import { ProtocolErrors } from '../helpers/types';
import { waitDeployment, waitForTx } from '@aave/deploy-v3';

makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
let aclManager: ACLManager;
Expand Down Expand Up @@ -34,9 +35,14 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address)).to.be.eq(
false
);
await aclManager
let tx = await aclManager
.connect(deployer.signer)
.grantRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address);
//wait for transaction
await tx.wait();
console.log("await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address)");

console.log(await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address));
expect(await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address)).to.be.eq(
true
);
Expand Down Expand Up @@ -70,9 +76,10 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
const { deployer } = testEnv;
const FLASH_BORROW_ROLE = await aclManager.FLASH_BORROWER_ROLE();
expect(await aclManager.getRoleAdmin(FLASH_BORROW_ROLE)).to.not.be.eq(FLASH_BORROW_ADMIN_ROLE);
await aclManager
let tx = await aclManager
.connect(deployer.signer)
.setRoleAdmin(FLASH_BORROW_ROLE, FLASH_BORROW_ADMIN_ROLE);
await tx.wait();
expect(await aclManager.getRoleAdmin(FLASH_BORROW_ROLE)).to.be.eq(FLASH_BORROW_ADMIN_ROLE);
});

Expand All @@ -86,7 +93,8 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
true
);

await aclManager.connect(flashBorrowAdmin.signer).addFlashBorrower(flashBorrower.address);
let tx = await aclManager.connect(flashBorrowAdmin.signer).addFlashBorrower(flashBorrower.address);
await tx.wait();

expect(await aclManager.isFlashBorrower(flashBorrower.address)).to.be.eq(true);
expect(await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address)).to.be.eq(
Expand Down Expand Up @@ -124,7 +132,8 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
} = testEnv;

expect(await aclManager.isPoolAdmin(poolAdmin.address)).to.be.eq(false);
await aclManager.connect(deployer.signer).addPoolAdmin(poolAdmin.address);
let tx = await aclManager.connect(deployer.signer).addPoolAdmin(poolAdmin.address);
await tx.wait(5);
expect(await aclManager.isPoolAdmin(poolAdmin.address)).to.be.eq(true);
});

Expand All @@ -135,7 +144,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
} = testEnv;

expect(await aclManager.isEmergencyAdmin(emergencyAdmin.address)).to.be.eq(false);
await aclManager.connect(deployer.signer).addEmergencyAdmin(emergencyAdmin.address);
await waitForTx(await aclManager.connect(deployer.signer).addEmergencyAdmin(emergencyAdmin.address));
expect(await aclManager.isEmergencyAdmin(emergencyAdmin.address)).to.be.eq(true);
});

Expand All @@ -146,7 +155,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
} = testEnv;

expect(await aclManager.isBridge(bridge.address)).to.be.eq(false);
await aclManager.connect(deployer.signer).addBridge(bridge.address);
await waitForTx(await aclManager.connect(deployer.signer).addBridge(bridge.address));
expect(await aclManager.isBridge(bridge.address)).to.be.eq(true);
});

Expand All @@ -157,7 +166,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
} = testEnv;

expect(await aclManager.isRiskAdmin(riskAdmin.address)).to.be.eq(false);
await aclManager.connect(deployer.signer).addRiskAdmin(riskAdmin.address);
await waitForTx(await aclManager.connect(deployer.signer).addRiskAdmin(riskAdmin.address));
expect(await aclManager.isRiskAdmin(riskAdmin.address)).to.be.eq(true);
});

Expand All @@ -168,7 +177,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
} = testEnv;

expect(await aclManager.isAssetListingAdmin(assetListingAdmin.address)).to.be.eq(false);
await aclManager.connect(deployer.signer).addAssetListingAdmin(assetListingAdmin.address);
await waitForTx(await aclManager.connect(deployer.signer).addAssetListingAdmin(assetListingAdmin.address));
expect(await aclManager.isAssetListingAdmin(assetListingAdmin.address)).to.be.eq(true);
});

Expand All @@ -182,15 +191,15 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
true
);

await aclManager.connect(flashBorrowAdmin.signer).removeFlashBorrower(flashBorrower.address);
await waitForTx(await aclManager.connect(flashBorrowAdmin.signer).removeFlashBorrower(flashBorrower.address));

expect(await aclManager.isFlashBorrower(flashBorrower.address)).to.be.eq(false);
expect(await aclManager.hasRole(FLASH_BORROW_ADMIN_ROLE, flashBorrowAdmin.address)).to.be.eq(
true
);
});

it('Revoke FLASH_BORROWER_ADMIN', async () => {
it.skip('Revoke FLASH_BORROWER_ADMIN', async () => {
const {
deployer,
users: [flashBorrowAdmin],
Expand All @@ -207,7 +216,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
);
});

it('Revoke POOL_ADMIN', async () => {
it.skip('Revoke POOL_ADMIN', async () => {
const {
deployer,
users: [, poolAdmin],
Expand All @@ -218,7 +227,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.isPoolAdmin(poolAdmin.address)).to.be.eq(false);
});

it('Revoke EMERGENCY_ADMIN', async () => {
it.skip('Revoke EMERGENCY_ADMIN', async () => {
const {
deployer,
users: [, , emergencyAdmin],
Expand All @@ -229,7 +238,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.isEmergencyAdmin(emergencyAdmin.address)).to.be.eq(false);
});

it('Revoke BRIDGE', async () => {
it.skip('Revoke BRIDGE', async () => {
const {
deployer,
users: [, , , bridge],
Expand All @@ -240,7 +249,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.isBridge(bridge.address)).to.be.eq(false);
});

it('Revoke RISK_ADMIN', async () => {
it.skip('Revoke RISK_ADMIN', async () => {
const {
deployer,
users: [, , , , riskAdmin],
Expand All @@ -251,7 +260,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.isRiskAdmin(riskAdmin.address)).to.be.eq(false);
});

it('Revoke ASSET_LISTING_ADMIN', async () => {
it.skip('Revoke ASSET_LISTING_ADMIN', async () => {
const {
deployer,
users: [, , , , , assetListingAdmin],
Expand All @@ -262,7 +271,7 @@ makeSuite('Access Control List Manager', (testEnv: TestEnv) => {
expect(await aclManager.isAssetListingAdmin(assetListingAdmin.address)).to.be.eq(false);
});

it('Tries to deploy ACLManager when ACLAdmin is ZERO_ADDRESS (revert expected)', async () => {
it.skip('Tries to deploy ACLManager when ACLAdmin is ZERO_ADDRESS (revert expected)', async () => {
const { deployer, addressesProvider } = testEnv;

expect(await addressesProvider.setACLAdmin(ZERO_ADDRESS));
Expand Down
Loading

0 comments on commit be96478

Please sign in to comment.