Skip to content

Commit

Permalink
chore: change eslint, prettier and solhint configs
Browse files Browse the repository at this point in the history
  • Loading branch information
ivaylonikolov7 committed Apr 18, 2023
1 parent 3b40898 commit b72b7dd
Show file tree
Hide file tree
Showing 12 changed files with 180 additions and 98 deletions.
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
node_modules
artifacts
cache
typechain
coverage
16 changes: 3 additions & 13 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,24 +1,14 @@
module.exports = {
env: {
browser: false,
es2021: true,
mocha: true,
es6: true,
node: true,
mocha: true,
},
plugins: ["@typescript-eslint"],
extends: [
"standard",
"plugin:@typescript-eslint/recommended",
"plugin:prettier/recommended",
"plugin:node/recommended",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: 12,
},
rules: {
"node/no-unsupported-features/es-syntax": [
"error",
{ ignores: ["modules"] },
],
},
};
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
node_modules
artifacts
cache
typechain
coverage*
gasReporterOutput.json
3 changes: 2 additions & 1 deletion .solhint.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"extends": "solhint:recommended",
"rules": {
"compiler-version": ["error", "^0.8.0"],
"func-visibility": ["warn", { "ignoreConstructors": true }]
"func-visibility": ["warn", { "ignoreConstructors": true }],
"var-name-mixedcase": "off"
}
}
9 changes: 8 additions & 1 deletion hardhat.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,17 @@ const config: HardhatUserConfig = {
etherscan: {
apiKey: process.env.ETHERSCAN_API_KEY,
},
typechain: {
outDir: "typechain",
target: "ethers-v4",
},
};
if (!config.networks) {
throw new Error(`No config networks!`);
}

if (process.env.FORK_ENABLED === "true") {
config.networks!.hardhat = {
config.networks.hardhat = {
forking: {
url: process.env.GOERLI_URL || "",
blockNumber: parseInt(process.env.BLOCK_NUMBER || ""),
Expand Down
37 changes: 24 additions & 13 deletions test/e2e/main.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ import { ethers, network } from "hardhat";
import * as chainlink from "../utils/chainlink-automation";
import { setupPool } from "../utils/uniswap";
import { parseEventFromABI } from "../utils/events";
import { Wallet } from "ethers";
import { Wallet, Event, Contract } from "ethers";
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import { DssVestTopUp } from "../../typechain/DssVestTopUp";
import { NetworkPaymentAdapter } from "../../typechain/NetworkPaymentAdapter";
import { SampleJob } from "../../typechain/SampleJob";
import { ERC20PresetMinterPauser } from "../../typechain/ERC20PresetMinterPauser";
import { LinkTokenMock } from "../../typechain/LinkTokenMock";
import { KeeperRegistry20 } from "../../typechain/KeeperRegistry20";
import { KeeperRegistrar20 } from "../../typechain/KeeperRegistrar20";
import { KeeperRegistry2_0 as KeeperRegistry20 } from "../../typechain/KeeperRegistry2_0";
import { KeeperRegistrar2_0 as KeeperRegistrar20 } from "../../typechain/KeeperRegistrar2_0";

const { parseEther, parseBytes32String, formatBytes32String } = ethers.utils;

Expand Down Expand Up @@ -54,21 +54,29 @@ describe("E2E", function () {

before(async function () {
[owner] = await ethers.getSigners();
linkToken = await ethers.getContractAt("LinkTokenMock", linkTokenAddress);
linkToken = (await ethers.getContractAt(
"LinkTokenMock",
linkTokenAddress
)) as unknown as LinkTokenMock;
registrySigners = chainlink.getRegistrySigners();
});

beforeEach(async function () {
// setup dai token
const ERC20 = await ethers.getContractFactory("ERC20PresetMinterPauser");
const ERC20 = (await ethers.getContractFactory(
"ERC20PresetMinterPauser"
)) as unknown as ERC20PresetMinterPauser;
daiToken = await ERC20.deploy("Test DAI", "DAI");
await daiToken.mint(owner.address, parseEther("100"));

// setup sequencer
const Sequencer = await ethers.getContractFactory("Sequencer");
const sequencer = await Sequencer.deploy();
const SampleJob = await ethers.getContractFactory("SampleJob");
job = await SampleJob.deploy(sequencer.address, 100);
job = (await SampleJob.deploy(
sequencer.address,
100
)) as unknown as SampleJob;
await sequencer.addJob(job.address);

// setup vest
Expand Down Expand Up @@ -124,11 +132,11 @@ describe("E2E", function () {
const vestingPlanId = 1;
const bufferMax = parseEther("1");
const minPayment = parseEther("1");
paymentAdapter = await NetworkPaymentAdapter.deploy(
paymentAdapter = (await NetworkPaymentAdapter.deploy(
dssVest.address,
daiJoin.address,
vowAddress
);
)) as unknown as NetworkPaymentAdapter;
await paymentAdapter["file(bytes32,uint256)"](
formatBytes32String("vestId"),
vestingPlanId
Expand All @@ -150,7 +158,7 @@ describe("E2E", function () {
[daiToken.address, uniswapPoolFee, linkToken.address]
);
const DssVestTopUp = await ethers.getContractFactory("DssVestTopUp");
topUp = await DssVestTopUp.deploy(
topUp = (await DssVestTopUp.deploy(
upkeepId,
registry.address,
daiToken.address,
Expand All @@ -161,7 +169,7 @@ describe("E2E", function () {
swapRouterAddress,
slippageToleranceBps,
uniswapPath
);
)) as unknown as DssVestTopUp;

// set topup contract as treasury in payment adapter
await paymentAdapter["file(bytes32,address)"](
Expand Down Expand Up @@ -224,9 +232,12 @@ describe("E2E", function () {
beforeEach(async function () {
const poolLinkTokenLiquidity = parseEther("100");
const poolDaiTokenLiquidity = parseEther("100");
const linkTokenContract = linkToken as unknown as Contract;
const daiTokenContract = daiToken as unknown as Contract;

await setupPool(
linkToken,
daiToken,
linkTokenContract,
daiTokenContract,
owner,
poolLinkTokenLiquidity,
poolDaiTokenLiquidity,
Expand Down Expand Up @@ -276,7 +287,7 @@ describe("E2E", function () {

// get total link spent by upkeep
const performUpkeepLinkSpent = tx.events?.find(
(e) => e.event === "UpkeepPerformed"
(e: Event) => e.event === "UpkeepPerformed"
)?.args?.totalPayment;

// check if balance is equal to initial balance + amount of link swapped - link spent for upkeep
Expand Down
24 changes: 13 additions & 11 deletions test/unit/DssCronKeeper.test.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
import { expect } from "chai";
import { ethers } from "hardhat";
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import {
DssCronKeeper,
DssVestTopUpMock,
SampleJob,
Sequencer,
} from "../../typechain";
import { DssCronKeeper } from "../../typechain/DssCronKeeper";
import { Sequencer } from "../../typechain/Sequencer";
import { SampleJob } from "../../typechain/SampleJob";
import { DssVestTopUpMock } from "../../typechain/DssVestTopUpMock";

const { HashZero } = ethers.constants;
const { formatBytes32String } = ethers.utils;
Expand All @@ -27,24 +25,28 @@ describe("DssCronKeeper", function () {

beforeEach(async function () {
const Sequencer = await ethers.getContractFactory("Sequencer");
sequencer = await Sequencer.deploy();
sequencer = (await Sequencer.deploy()) as unknown as Sequencer;
await sequencer.addNetwork(formatBytes32String("test"), 1);

const SampleJob = await ethers.getContractFactory("SampleJob");
job = await SampleJob.deploy(sequencer.address, 100);
job = (await SampleJob.deploy(
sequencer.address,
100
)) as unknown as SampleJob;
await sequencer.addJob(job.address);
runJobEncoded = iface.encodeFunctionData("runJob", [job.address, "0x"]);

const DssCronKeeper = await ethers.getContractFactory("DssCronKeeper");
keeper = await DssCronKeeper.deploy(
keeper = (await DssCronKeeper.deploy(
sequencer.address,
formatBytes32String("test")
);
)) as unknown as DssCronKeeper;

const DssVestTopUpMock = await ethers.getContractFactory(
"DssVestTopUpMock"
);
topUpMock = await DssVestTopUpMock.deploy();
topUpMock =
(await DssVestTopUpMock.deploy()) as unknown as DssVestTopUpMock;
await keeper.setUpkeepRefunder(topUpMock.address);
});

Expand Down
53 changes: 32 additions & 21 deletions test/unit/DssVestTopUp.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,14 @@ import { ethers } from "hardhat";
import { AbiCoder } from "@ethersproject/abi";
import { utils, Wallet } from "ethers";
import { SignerWithAddress } from "@nomiclabs/hardhat-ethers/signers";
import {
DssVestTopUp,
DssVestTopUp__factory as DssVestTopUpFactory,
ERC20PresetMinterPauser,
KeeperRegistryMock,
MockV3Aggregator,
MockV3Aggregator__factory as MockV3AggregatorFactory,
NetworkPaymentAdapterMock,
SwapRouterMock,
} from "../../typechain";
import { DssVestTopUp } from "../../typechain/DssVestTopUp";
import { NetworkPaymentAdapterMock } from "../../typechain/NetworkPaymentAdapterMock";
import { ERC20PresetMinterPauser } from "../../typechain/ERC20PresetMinterPauser";
import { KeeperRegistryMock } from "../../typechain/KeeperRegistryMock";
import { SwapRouterMock } from "../../typechain/SwapRouterMock";
import { DssVestTopUp__factory as DssVestTopUpFactory } from "../../typechain/factories/DssVestTopUp__factory";
import { MockV3Aggregator__factory as MockV3AggregatorFactory } from "../../typechain/factories/MockV3Aggregator__factory";
import { MockV3Aggregator } from "../../typechain/MockV3Aggregator";

const { parseEther, parseUnits, toUtf8Bytes, keccak256 } = ethers.utils;

Expand Down Expand Up @@ -40,8 +38,12 @@ describe("DssVestTopUp", function () {
let owner: SignerWithAddress;

before(async function () {
DssVestTopUp = await ethers.getContractFactory("DssVestTopUp");
MockV3Aggregator = await ethers.getContractFactory("MockV3Aggregator");
DssVestTopUp = (await ethers.getContractFactory(
"DssVestTopUp"
)) as unknown as DssVestTopUpFactory;
MockV3Aggregator = (await ethers.getContractFactory(
"MockV3Aggregator"
)) as unknown as MockV3AggregatorFactory;
});

beforeEach(async function () {
Expand All @@ -50,24 +52,32 @@ describe("DssVestTopUp", function () {
const ERC20PresetMinterPauser = await ethers.getContractFactory(
"ERC20PresetMinterPauser"
);
daiToken = await ERC20PresetMinterPauser.deploy("Test DAI", "DAI");
daiToken = (await ERC20PresetMinterPauser.deploy(
"Test DAI",
"DAI"
)) as unknown as ERC20PresetMinterPauser;

// setup link token
linkToken = await ERC20PresetMinterPauser.deploy("Test Chainlink", "LINK");
linkToken = (await ERC20PresetMinterPauser.deploy(
"Test Chainlink",
"LINK"
)) as unknown as ERC20PresetMinterPauser;

// setup chainlink keeper registry mock
const KeeperRegistryMock = await ethers.getContractFactory(
"KeeperRegistryMock"
);
keeperRegistryMock = await KeeperRegistryMock.deploy(linkToken.address);
keeperRegistryMock = (await KeeperRegistryMock.deploy(
linkToken.address
)) as unknown as KeeperRegistryMock;
await keeperRegistryMock.setUpkeepBalance(initialUpkeepBalance);

// setup uniswap router mock
const SwapRouterMock = await ethers.getContractFactory("SwapRouterMock");
swapRouterMock = await SwapRouterMock.deploy(
swapRouterMock = (await SwapRouterMock.deploy(
daiToken.address,
linkToken.address
);
)) as unknown as SwapRouterMock;

// setup price feed mocks
daiUsdPriceFeedMock = await MockV3Aggregator.deploy(
Expand All @@ -83,13 +93,14 @@ describe("DssVestTopUp", function () {
const NetworkPaymentAdapterMock = await ethers.getContractFactory(
"NetworkPaymentAdapterMock"
);
paymentAdapterMock = await NetworkPaymentAdapterMock.deploy(
paymentAdapterMock = (await NetworkPaymentAdapterMock.deploy(
daiToken.address,
topUpAmount
);
)) as unknown as NetworkPaymentAdapterMock;

// setup topup contract
topUp = await DssVestTopUp.deploy(
const DssVestTopUp = await ethers.getContractFactory("DssVestTopUp");
topUp = (await DssVestTopUp.deploy(
fakeUpkeepId,
keeperRegistryMock.address,
daiToken.address,
Expand All @@ -100,7 +111,7 @@ describe("DssVestTopUp", function () {
swapRouterMock.address,
slippageToleranceBps,
uniswapPath
);
)) as unknown as DssVestTopUp;

// set topup contract as treasury in payment adapter
paymentAdapterMock.setTreasury(topUp.address);
Expand Down
Loading

0 comments on commit b72b7dd

Please sign in to comment.