From 205a80c4fc85cee69f18f80b0f6999450f82135d Mon Sep 17 00:00:00 2001 From: PraneshASP Date: Thu, 2 May 2024 21:06:25 +0530 Subject: [PATCH] feat: add tests for price feed --- .../oracle/aero-weth-oracle.base.fork-test.js | 41 +++++++++++++++++++ contracts/utils/addresses.js | 6 +++ 2 files changed, 47 insertions(+) create mode 100644 contracts/test/oracle/aero-weth-oracle.base.fork-test.js diff --git a/contracts/test/oracle/aero-weth-oracle.base.fork-test.js b/contracts/test/oracle/aero-weth-oracle.base.fork-test.js new file mode 100644 index 0000000000..5a23acf75a --- /dev/null +++ b/contracts/test/oracle/aero-weth-oracle.base.fork-test.js @@ -0,0 +1,41 @@ +const { expect } = require("chai"); +const { parseUnits } = require("ethers/lib/utils"); + +const { isCI } = require("../helpers"); +const addresses = require("../../utils/addresses"); + +describe("ForkTest: Aero WETH Oracle", function () { + this.timeout(0); + + // Retry up to 3 times on CI + this.retries(isCI ? 3 : 0); + + let aeroWethOracle; + + beforeEach(async () => { + const AeroWethOracle = await ethers.getContractFactory("AeroWEthPriceFeed"); + aeroWethOracle = await AeroWethOracle.deploy( + addresses.base.ethUsdPriceFeed, + addresses.base.aeroUsdPriceFeed + ); + await aeroWethOracle.deployed(); + }); + + it("should get WETH price", async () => { + const price = await aeroWethOracle.price(addresses.base.wethTokenAddress); + expect(price).to.eq(parseUnits("1", 18)); + }); + + it("should get AERO price", async () => { + const price = await aeroWethOracle.price(addresses.base.aeroTokenAddress); + const poolInstance = await ethers.getContractAt( + "IPool", + addresses.base.wethAeroPoolAddress + ); + const ammPrice = await poolInstance.getAmountOut( + parseUnits("1"), + addresses.base.aeroTokenAddress + ); + expect(price).to.approxEqualTolerance(ammPrice, 1); + }); +}); diff --git a/contracts/utils/addresses.js b/contracts/utils/addresses.js index a7cc9ca51b..c668a0c799 100644 --- a/contracts/utils/addresses.js +++ b/contracts/utils/addresses.js @@ -254,4 +254,10 @@ addresses.base.aeroFactoryAddress = addresses.base.aeroGaugeGovernorAddress = "0xE6A41fE61E7a1996B59d508661e3f524d6A32075"; +addresses.base.ethUsdPriceFeed = "0x71041dddad3595F9CEd3DcCFBe3D1F4b0a16Bb70"; + +addresses.base.aeroUsdPriceFeed = "0x4EC5970fC728C5f65ba413992CD5fF6FD70fcfF0"; +addresses.base.wethTokenAddress = "0x4200000000000000000000000000000000000006"; +addresses.base.wethAeroPoolAddress = + "0x80aBe24A3ef1fc593aC5Da960F232ca23B2069d0"; module.exports = addresses;