Mentioned in Awesome Foundry

Foundry + Hardhat Diamonds

This is a mimimal template for Diamonds which allows facet selectors to be generated on the go in solidity tests!

Installation

  • Clone this repo
  • Install dependencies
$ yarn && forge update

Compile

$ npx hardhat compile

Deployment

Hardhat

$ npx hardhat run scripts/deploy.js

Foundry

$ forge t

Note: A lot of improvements are still needed so contributions are welcome!!

Contract Architecture

NFT Marketplace Diagram

Bonus: The DiamondLoupefacet uses an updated LibDiamond which utilises solidity custom errors to make debugging easier especially when upgrading diamonds. Take it for a spin!!

Need some more clarity? message me on twitter, Or join the EIP-2535 Diamonds Discord server