We modified @AaveAave's AToken implementation to support Flexible Voting so you can earn yield on governance tokens and continue participating in governance.
For example, you can supply UNI to Aave to earn yield, and still vote on @Uniswap proposals.
twitter.com/ScopeLift/status/1621275019929059329
Foundry and solidity best practices were recently released, strongly recommended reading through them
Ethereum development changes quickly so I suspect these will evolve over time. Feedback is definitely welcome
A few highlights below, read them all at: book.getfoundry.sh/tutorials/best-practices
Introducing forge-std v1.0.0 🧵
Strongly recommend updating your forge-std versions ASAP, as there are changes that improve fuzzing so you might find some new failing tests.
Update with `forge update lib/forge-std`
1/ New `forge script` patterns unlocked thanks to @devan_non. No more passing private keys in the CLI:
1. `export PRIVATE_KEY=<key>` in `.env`
2. `uint256 privKey = vm.envUint("PRIVATE_KEY")`
3. `address deployer = vm.rememberKey(privKey)`
4. Deploy with `vm.broadcast(deployer)`
This feature seems to have went under the radar, so here's a guide to clean and simple fork tests with foundry.
No custom profiles, tailored file names/directory structure, or match flags needed 👇️
Introducing Multicall3
A modern, efficient contract for aggregating results from multiple function calls
Deployed (almost) everywhere at 0xcA11bde05977b3631167028862bE2a173976CA11
github.com/mds1/multicall
Backwards compatible with previous Multicalls so it can be dropped in easily, though you should also check out the new, flexible, and highly optimized `aggregate3` and `aggregate3Value` methods