Skip to content

Releases: a16z/halmos

v0.2.4

24 Jan 23:48
028d726
Compare
Choose a tag to compare

What's Changed

Bugfixes:

New Contributors

Full Changelog: v0.2.3...v0.2.4

v0.2.3

18 Dec 19:36
0ef9341
Compare
Choose a tag to compare

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

10 Dec 02:38
27f620a
Compare
Choose a tag to compare

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

14 Nov 01:20
ce13a9f
Compare
Choose a tag to compare

What's Changed

This release improves internal functionalities.

Improved handling of dynamic arrays:

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

Full Changelog: v0.2.0...v0.2.1

v0.2.0

25 Sep 01:56
20cd93a
Compare
Choose a tag to compare

What's Changed

Breaking changes

New features

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

14 Aug 05:05
f5acded
Compare
Choose a tag to compare

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

Full Changelog: v0.1.13...v0.1.14

v0.1.13

13 May 21:14
5a7bedc
Compare
Choose a tag to compare

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

18 Apr 18:56
3f5d10c
Compare
Choose a tag to compare

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

21 Mar 06:27
8053b58
Compare
Choose a tag to compare

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

  • @cos made their first contribution in #258

Full Changelog: v0.1.10...v0.1.11

v0.1.10

22 Dec 21:33
153d9fe
Compare
Choose a tag to compare

What's Changed

Performance:

  • Reduce memory footprint in #218

Features:

  • Introduce other failure modes in #237
  • Add --match-test and --match-contract in #238

Dependencies:

  • Drop support for python 3.8 in #226
  • Require z3 4.12.2 in pyproject in #236

Full Changelog: v0.1.9...v0.1.10