← notes

A contract project caught halfway between Truffle and Hardhat

Jan 8, 2024

A contract project caught halfway between Truffle and Hardhat.

Both hardhat.config.js and truffle-config.js are in the repo, alongside a migrations/ directory (Truffle’s word) and scripts/deploy.js, which is Hardhat’s. contracts/Lock.sol is still the Hardhat sample, sitting next to QuebradaSelect.sol, which is the actual work.

Leaving both is what actually happens and nobody writes it down. Migrating between these tools is not a config swap: they disagree about deployment as numbered migrations versus an imperative script, about artifact format and location, about the test runner and its fixture model, and about network configuration shape. Each is small and together they are an afternoon, which is why the second config sits there for months.

The cost lands on whoever opens the repo next. Two configs means two answers to “how do I deploy this” and no signal about which is live, and the stale one is worse than none because it looks authoritative.

Still marked WIP. The sample contract still being present is its own signal: nobody did the pass where you delete what you are not using.