A project by @deca12x & @BigBangInfinity
- Take contracts from ZK bootcamp final project of @hroyo & @BigBangInfinity https://github.com/hroyo/Zk-encode
- Write Foundry Tests
- Create various versions with different design patterns that pass the tests
- Optimise gas
Template repository for getting started quickly with Foundry projects
Click "Use this template" on GitHub to create a new repository with this repo as the initial state.
Or, if your repo already exists, run:
forge init
forge build
forge test
All you need is to import forge-std/Test.sol
and then inherit it from your test contract. Forge-std's Test contract comes with a pre-instatiated cheatcodes environment, the vm
. It also has support for ds-test-style logs and assertions. Finally, it supports Hardhat's console.log. The logging functionalities require -vvvv
.
pragma solidity 0.8.10;
import "forge-std/Test.sol";
contract ContractTest is Test {
function testExample() public {
vm.roll(100);
console.log(1);
emit log("hi");
assertTrue(true);
}
}
This project uses Foundry. See the book for instructions on how to install and use Foundry.