Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ lcov.info
.vscode
.password

node_modules/

broadcast/*/31337
deployments/**/31337.*
visualizations/auction_simple.py
61 changes: 61 additions & 0 deletions hardhat.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
// hardhat.config.ts
import "@nomicfoundation/hardhat-foundry";
import "@nomicfoundation/hardhat-ethers";
import "@typechain/hardhat";

import type { HardhatUserConfig } from "hardhat/config";
import { subtask } from "hardhat/config";
import { TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS } from "hardhat/builtin-tasks/task-names";
import path from "node:path";
import * as glob from "glob";

subtask(TASK_COMPILE_SOLIDITY_GET_SOURCE_PATHS, async (_, { config }) => {
const root = config.paths.root;
const contractSources = glob.sync(path.join(root, "src/**/*.sol"));
const testUtilsSources = glob.sync(path.join(root, "test/utils/**/*.sol"));
return [...contractSources, ...testUtilsSources].map((p) => path.normalize(p));
});
Comment on lines +12 to +17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sure what this is for, can you elaborate?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Makes sure that files in test/utils get compiled as well, instead of just src. which we need for the WorkingCustomMockToken

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah I see, could we just hardcode its abi or something? to reduce complexity

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would need its bytecode or artifact. Since we need to deploy it we need more than the ABI. But I can copy a copy of its artifact to test/e2e (in an artifact folder) and commit it if you think we should do that

Copy link
Contributor Author

@ericneil-sanc ericneil-sanc Oct 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I would need to investigate if using a copy of its artifact would be fine, since the contract is used in typechain bindings, I may not be able to get to figure out if we could use a copy of its artifact until I get back


const config: HardhatUserConfig = {
solidity: {
version: "0.8.26",
settings: {
optimizer: { enabled: true, runs: 200 },
viaIR: true, // Required for complex contracts
},
},
networks: {
hardhat: {
blockGasLimit: 40_000_000,
accounts: {
count: 20,
initialIndex: 0,
mnemonic: "test test test test test test test test test test test junk",
path: "m/44'/60'/0'/0",
accountsBalance: "10000000000000000000000", // 10k ETH
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this also seems like the default

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AccountsBalance isnt but I will remove the rest

},
},
},
paths: {
sources: "./src",
tests: "./test/e2e/tests",
cache: "./test/e2e/cache",
artifacts: "./test/e2e/artifacts",
},
mocha: {
timeout: 300000, // 5 minutes for complex e2e tests
},
typechain: {
outDir: "typechain-types",
target: "ethers-v6",
alwaysGenerateOverloads: false,
externalArtifacts: [
"out/Auction.sol/Auction.json",
"out/AuctionFactory.sol/AuctionFactory.json",
"out/WorkingCustomMockToken.sol/WorkingCustomMockToken.json",
], // Specific Foundry artifacts
dontOverrideCompile: false, // Let it compile if needed
},
};

export default config;
Loading
Loading