Releases: a16z/halmos
Releases · a16z/halmos
v0.2.3
What's Changed
- fix: linear memory growth by @karmacoma-eth in #426
- feat: support for snapshot cheatcodes by @daejunpark in #427
Full Changelog: v0.2.2...v0.2.3
v0.2.2
What's Changed
- feat: display spinning progress by @daejunpark in #417
- feat: embrace uv by @karmacoma-eth in #422
New Contributors
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
This release improves internal functionalities.
Improved handling of dynamic arrays:
- feat: consider various lengths for dynamic-sized parameters by @daejunpark in #384
- feat: lazy concretization by @daejunpark in #392
Improved keccak hash reasoning:
- feat: handle concrete keccaks concretely by @karmacoma-eth in #391
- perf: improve hash injectivity constraints by @daejunpark in #406
- feat: injectivity for truncated hashes by @daejunpark in #408
Misc:
- feat: target Panic(k) for any k specified in --panic-error-codes by @daejunpark in #382
- fix: exclude test contract from symbolic calls by @daejunpark in #388
- feat: customize bash prompt in our docker images by @karmacoma-eth in #407
New Contributors
- @PatrickAlphaC made their first contribution in #378
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
Breaking changes
- feat: replace --symbolic-storage with enableSymbolicStorage(address) cheatcode by @daejunpark in #355
- feat: empty initial network state by @daejunpark in #352
- feat: reject multiple setup paths by @daejunpark in #351
- perf: increase default assertion solving timeout from 1s to 1m by @daejunpark in #368
- feat: deprecate --bytecode and --reset-bytecode by @daejunpark in #350
New features
- feat: support for new cheatcode of generating calldata by @daejunpark in #360
- feat: branching over symbolic call addresses by @daejunpark in #349
Bug fixes and improvements
- perf: code fastpath scanning for valid jump destinations by @karmacoma-eth in #348
- fix: failed() cheatcode error by @daejunpark in #359
- fix: vm.etch() leaves storage uninitialized by @karmacoma-eth in #363
- fix: manually solve dynamic array overflow conditions by @daejunpark in #366
Full Changelog: v0.1.14...v0.2.0
v0.1.14
What's Changed
halmos.toml configuration
- feat: enhance configuration management by using toml configuration file by @pillip in #296
- feat: toml config, take 2 by @karmacoma-eth in #298
- docs: example halmos.toml by @karmacoma-eth in #299
Docker images
- feat: use docker image to load solvers and setup the testing environment by @EmperorOrokuSaki in #295
- feat: solvers package by @karmacoma-eth in #302
- ci: run workflow using
solvers
as a base image by @karmacoma-eth in #307 - ci: add intermediary halmos-builder image and dockerize more workflows by @karmacoma-eth in #308
Cheatcode/opcode support
- feat: support for forge-std assert cheatcodes by @daejunpark and @EmperorOrokuSaki in #323
- feat: support vm.getBlockNumber cheatcode by @pillip in #325
- feat: functional implementation of EXTCODEHASH and EXTCODECOPY by @karmacoma-eth in #328
- feat: add support for prank(sender, origin) and startPrank(sender, origin) cheatcodes by @karmacoma-eth in #336
UX improvements
- feat: parse symbols from build to print readable traces by @pillip in #309
- feat: trace rendering: extract selector from calldata by @karmacoma-eth in #339
- feat: add ERC-1155 token receiver hooks as defaults in unknown call resolution by @pcaversaccio in #291
- fix: handle solidity files with no contracts by @karmacoma-eth in #333
- fix: simplify symbol parsing by @karmacoma-eth in #334
- cli: deprecated --solver-parallel by @daejunpark in #314
Performance improvements
- perf: chunk based memory model by @karmacoma-eth in #288
- perf: optimize execution loop by @karmacoma-eth in #293
- feat: cache unsat queries using unsat core by @daejunpark in #311
- perf: prune infeasible paths early by @daejunpark in #319
- perf: early exit for fail() by @daejunpark in #322
- perf: abstract multiplication by @daejunpark in #340
Bugfixes
- fix: smt encoding for evm div-by-zero by @daejunpark in #271
- fix: use --ast to enable foundry build cache by @daejunpark in #289
- fix: add Missing Error Code in
parse_build_out
Warning by @pcaversaccio in #300 - fix bad abi encoding in createBytes4 by @karmacoma-eth in #329
- fix: parsing unsat core output variants by @daejunpark in #337
New Contributors
- @pcaversaccio made their first contribution in #291
- @EmperorOrokuSaki made their first contribution in #295
- @pillip made their first contribution in #296
Full Changelog: v0.1.13...v0.1.14
v0.1.13
What's Changed
- Add GitHub Codespaces dev container config by @cos in #274
- fix: concrete exitcode for precompile by @daejunpark in #286
Full Changelog: v0.1.12...v0.1.13
v0.1.12
What's Changed
- feat: constrain (r, s, v) signature values by @karmacoma-eth in #259
- fix: vm.etch(addr, "") used to raise an exception by @karmacoma-eth in #264
- feat: --solver-command lets user replace z3 invocations by @karmacoma-eth in #272
- unpin z3 version by @karmacoma-eth in #275 and #276
Full Changelog: v0.1.11...v0.1.12
v0.1.11
What's Changed
- fix: calldata rendering bugfix, large memory offset bugfix by @karmacoma-eth in #242
- docs: add multicaller example by @daejunpark in #241
- fix: use consistent hex prefix handling by @karmacoma-eth in #246
- feat: dump refined queries by @karmacoma-eth in #250
- perf: small bytecode caching optimizations by @karmacoma-eth in #249
- fix: add --build-info to forge build command by @karmacoma-eth in #255
- feat: support for signing and verifying signatures by @karmacoma-eth in #257
- docs: small fixes for
getting-started.md
by @cos in #258
New Contributors
Full Changelog: v0.1.10...v0.1.11
v0.1.10
v0.1.9
What's Changed
- feat: nicer output by @karmacoma-eth in #209
- feat: handle SIGINT and SIGTERM by @karmacoma-eth in #210
Full Changelog: v0.1.8...v0.1.9