The Moonwell Protocol is a fork of Compound v2 with features like borrow/supply caps, cross-chain governance, and multi-token emissions.
The "v2" release of the Moonwell Protocol is a major system upgrade to use solidity 0.8.17, add supply caps, and a number
of improvements for user experience (things like mintWithPermit and claimAllRewards). Solidity version 0.8.20 was not used because EIP-3855 which adds the PUSH0 opcode will not be live on base where this system will be deployed.
Development will work with the latest version of foundry installed.
Basic development workflow:
forge build to build the smart contractsforge test -vvv --match-contract UnitTest to run the unit testsforge test --match-contract IntegrationTest --fork-url $ETH_RPC_URL to run the integration testsforge test --match-contract ArbitrumTest --fork-url $ARB_RPC_URL to run the ChainlinkCompositeOracle testsforge test --match-contract LiveSystemTest --fork-url baseGoerli to run the base goerli live system testsforge script src/proposals/DeployProposal.s.sol:DeployProposal -vvvv --rpc-url $ETH_RPC_URL to do a dry run of the deployment script