Featured Changes
- feat/perf: use native assertions by @klkvr in #514.
- This replaces forge-std Solidity code with native cheatcode assertions from Foundry, so should give a small performance boost.
- Assertion failures now cause tests to exit early, instead of continuing with execution.
- This also will require some visibility modifier changes to tests, as assertion methods no longer set state.
- NOTE: If you were using the
vm.expectSafeMemory
cheat, you may need to now use the newvm.stopExpectSafeMemory
cheat from #507. See #503 (comment) to learn more, h/t @clabby.
- feat(stdStorage): support packed variables by @klkvr in #505. This means
deal
now works with USDC and other variables that reply on packed storage slots.- The USDC
deal
support works out of the box. - To avoid breaking changes arbitrary packed slot support is not enabled by default, and can be enabled with
stdstore.enable_packed_slots().target(....
.
- The USDC
- feat: add TOML reading/writing cheatcodes by @zerosnacks in #518. These are analogous to their JSON equivalents.
- NOTE: This adds file specific
keyExistsJson
andkeyExistsToml
cheats. The ambiguouskeyExists
currently is an alias forkeyExistsJson
and will be deprecated.
- NOTE: This adds file specific
- feat: native string maniupulation cheatcodes of
toLowercase
,toUppercase
,trim
,replace
andsplit
from foundry-rs/foundry#6891. - feat: implement interfaces in mock tokens by @arr00 in #510.
Other Changes
- Exclude internal cheats from Vm by @klkvr in #501.
- Fix typo in
StdJson.sol
usage comments by @coopbri in #511. - feat: fraxtal mainnet/testnet rpc support by @pegahcarter in #517.
New Contributors
- @coopbri made their first contribution in #511.
- @arr00 made their first contribution in #510.
- @pegahcarter made their first contribution in #517.
- @zerosnacks made their first contribution in #518.
Full Changelog: v1.7.6...v1.8.0