Skip to content

Releases: dapphub/dapptools

dapp/0.31.0

29 Nov 18:34
Compare
Choose a tag to compare

[0.31.0] - 2020-11-29

Changed

  • dapp test --match now matches on file path and contract name, as
    well as test name
  • dapp --use searches directly for binaries in your path, rather than
    using nix run, giving a significant speed boost.

hevm/0.42.0

31 Oct 10:05
Compare
Choose a tag to compare

hevm 0.42.0 - 2020-10-31

Changed

  • z3 updated to 4.8.8
  • optimize SMT queries
  • More useful trace output for unknown calls
  • Default to on chain values for coinbase, timestamp, difficulty, blocknumber when rpc is provided
  • Perform tx initialization (gas payment, value transfer) in hevm exec, hevm symbolic and hevm dapp-test.

Added

  • TTY commands P and c-p for taking larger steps backwards in the debuger.
  • --cache flag for dapp-test, exec, symbolic, interactive,
    enabling caching of contracts received by rpc.
  • load(address,bytes32) cheat code allowing storage reads from arbitrary contracts.

dapp 0.30.0 - 2020-10-31

Added

  • Support for solc 0.6.8
  • Support for setting solc by path. Use DAPP_SOLC=/path/to/bin or
    dapp --use /path/to/solc ... to use a custom solc.
  • dapp test --cache for RPC caching, via hevm.

hevm/0.41.0

19 Aug 11:26
Compare
Choose a tag to compare

hevm-0.41.0

Changed

  • Switched to PVP for version control, starting now at 0.41.0 (MAJOR.MAJOR.MINOR).
  • z3 updated to 4.8.7
  • Generate more interesting values in property based testing,
    and implement proper shrinking for all abi values.
  • Fixed soundness bug when using KECCAK or SHA256 opcode/precompile
  • Fixed an issue in debug mode where backstepping could cause path information to be forgotten
  • Ensure that pathconditions are consistent when branching, and end the execution with VMFailure: DeadPath if this is not the case
  • Fixed a soundness bug where nonzero jumpconditions were assumed to equal one.
  • default --smttimeout changed from unlimited to 20 seconds
  • hevm symbolic --debug now respects --max-iterations

Added

  • hevm exec --trace flag to dump a trace
  • Faster backstepping in interactive mode by saving multiple snapshot states.
  • Support for symbolic storage for multiple contracts

dapp-0.29.0

Added

  • Support for solc 0.6.12 for linux

Fixed

  • Support for libraries. To test a project which includes libraries you need to use:
DAPP_BUILD_EXTRACT=1 dapp test

seth-0.9.1

Added

  • New commands:

    • seth source <address> fetches the contract source from etherscan
    • seth bundle-source <address> fetches contract source and compiles to combined json
    • seth run-tx <tx-hash> [--debug, --source <file>, --state <repository>],
      set hevm options according to the options given and hevm exec
    • seth debug <tx-hash> [--no-src] downloads etherscan source, executes previous txs in block and enters into an hevm interactive session for the given tx. --no-src skips the first step.
    • seth --{max-uint,max-int,min-int} print the largest numbers (in hex) of a given bitsize
    • seth call --hevm executes a call via hevm, rather than the RPC
    • seth call --debug executes a call interactively via hevm
    • seth --verbose prints some seth debugging information to stderr
  • seth block can now be passed the --full option, which returns the full block.

  • hexdata can be concatenated with :, e.g. '0xaa:0xbb' will be read as '0xaabb'.

Changed

  • seth --to-{hex,wei,word,address,dec,int256,ascii,fix,uint256} and
    seth --from-{ascii,wei} can now read values from stdin.
  • seth call now accepts empty calldata and also create transactions
    via --create.
  • seth --abi-function-json no longer returns a singleton list, but rather the JSON object it contained.
  • Updated hevm to 0.41.0

hevm/0.40.0

22 Jul 14:28
Compare
Choose a tag to compare

This release makes hevm capable of symbolic execution, and exposes the new hevm symbolic or hevm equivalence.

For more details, check out the announcing post https://fv.ethereum.org/2020/07/28/symbolic-hevm-release/ or consult the README for usage options.

Install as always using nix. Check out installation instructions or in brief:

curl -L https://nixos.org/nix/install | sh
. "$HOME/.nix-profile/etc/profile.d/nix.sh"
curl https://dapp.tools/install | sh

Full changelog:

0.40 - 2020-07-22

  • hevm is now capable of symbolic execution!

Changed

As a result, the types of several registers of the EVM have changed to admit symbolic values as well as concrete ones.

  • state.stack: Word -> SymWord.

  • state.memory: ByteString -> [SWord 8].

  • state.callvalue: W256 -> SymWord.

  • state.caller: Addr -> SAddr.

  • state.returndata: ByteString -> [SWord 8].

  • state.calldata: ByteString -> ([SWord 8], (SWord 32)). The first element is a list of symbolic bytes, the second is the length of calldata. We have fst calldata !! i .== 0 for all snd calldata < i.

  • tx.value: W256 -> SymWord.

  • contract.storage: Map Word Word -> Storage, defined as:

data Storage
  = Concrete (Map Word SymWord)
  | Symbolic (SArray (WordN 256) (WordN 256))
  deriving (Show)

Added

New cli commands:

  • hevm symbolic: search for assertion violations, or step through a symbolic execution in debug mode.
  • hevm equivalence: compare two programs for equivalence.

See the README for details on usage.

The new module EVM.SymExec exposes several library functions dealing with symbolic execution.
In particular,

  • SymExec.interpret: implements an operational monad script similar to TTY.interpret and Stepper.interpret, but returns a list of final VM states rather than a single VM.
  • SymExec.verify: takes a prestate and a postcondition, symbolically executes the prestate and checks that all final states matches the postcondition.

Removed

The concrete versions of a lot of arithmetic operations, replaced with their more general symbolic counterpart.

hevm/0.39.0

13 Jul 17:07
67fb1a6
Compare
Choose a tag to compare
hevm 0.39 release (#427)

dapp/0.28.0

13 Jul 12:51
aa6b720
Compare
Choose a tag to compare
Merge pull request #421 from dapphub/solc-0.6.7

dapp: 0.28.0

ethsign/0.15.0

08 Jul 12:39
Compare
Choose a tag to compare
bump ethsign to 0.15.0