argotorg / argotorg/hevm

allow symbolic bytecode in `hevm equivalence`

Open
#649 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Haskell
Stars
358
Forks
79
Avg merge
1d 1h
Merged PRs (30d)
6

Description

in runtime bytecode, there is often bytecode which is never executed, but may be copied to memory via `codecopy`. it would be nice to be able to have bytecode like

CODECOPY 0, 100, 32

and in the actual bytecode provided to `hevm equivalence`, use sentinel nibbles like `SSSS..SS` at offset 100. then hevm would interpret this as symbolic data. of course, if the symbolic bytecode is actually *reachable* (it shouldn't be!), execution should terminate with an exception.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at the hevm equivalence entry point and trace runtime-bytecode handling through the CODECOPY execution path. Check how symbolic values and unreachable execution are represented, then verify that sentinel data can be copied symbolically while execution of that data terminates with an exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
blockchain, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.