* build(dockerfile): support preinstalling custom solc
* build(dockerfile): run with normal user mythril
* build(dockerfile): fix install SOLC command & install under mythril user
* fix.build(dockerfile): when build-time argument SOLC not specified
* fix.build & chore(dockerfile): copy signature db to user directory & remove CHOWN operation for copied files
Fix copying to `signatures.db` to root home directory mistake. `chown` operation was unnecessary and removed.
* add actor address to symbolic
This will allow us to simulate semi-symbolic transaction senders
* add value transfer to transaction global state creation
* add proper balance tracking to world state and account
* use address value vs string
* disable actor address variable
* use address directly
* allow balance functions with int types
* use value as getters since bitvecs aren't hashable
* implement correct value transfer for suicide
* use actor from actor pool
* allow use of Or with *arg pattern
* use bitvec instead of strings
* add dynamic balance implementation to state datamodels
* cleanup svm interface
* use balance lambda in suicide op implementation
* use bitvec instead of string address
* update world state and account creation in symbolic
* update tests to include overflow results
* apply style rules
* ignore previous open states for now
* update native test to conform to new laser interface
* fix incorrect types in the symbolic virtual machine
* allow multiple types as input for address in account
* fix type hint in symbolic.py
* get int out of string in call
* fix type in call op implementation
* adapt test_transaction to conform to new laser interface
* use static address to keep contracts from trying to enter themselves
and make address type more dynamic
* update evm test to conform to new laser interface
* implement suicide to uncreated account
* apply style rules
* dynamically create colormap
This removes the need for a globally maintained accountlist
* get value out of address
* add accounts getter
* change symbolic test call to be valid with respect to the world
state and account apis
* remove dependency on globally recorded accounts
* fix typing issues
* fix type annotations in symbolic.py
* fix remaining mypy warnings
* simplify assertion check
* execute lambda to get balance
* make variable name plural
* add documentation to svm constructor
* use list comprehension to make code cleaner
* remove comment
* change variable name to plural
* remove commented code
* change variable name to conform to changed interface
* Set low priority to other internal compiler generated code
* Remove unused variable
* Use the ast to get contract source code
* Add docstrings
* Remove code filtering for truffle
* Update mythril/solidity/soliditycontract.py
Co-Authored-By: JoranHonig <JoranHonig@users.noreply.github.com>
Because `eth-account@0.4.0` depends on `eth_abi>=2.0.0b7`, which
conflicts with `eth_abi==1.3.0` required by `mythril-classic`. As I am
looking for a rapid fix, I am restricting `eth-account<=0.3.0` rather
than trying to allow higher versions of `eth_abi`. Thus, leaving to
`mythril-classic` team to inverstigate possibility of update to latest
`eth-account` and `eth_abi`, and fix any related issues.
Because `eth-account@0.4.0` depends on `eth_abi>=2.0.0b7`, which
conflicts with `eth_abi==1.3.0` required by `mythril-classic`. As I am
looking for a rapid fix, I am restricting `eth-account<=0.3.0` rather
than trying to allow higher versions of `eth_abi`. Thus, leaving to
`mythril-classic` team to inverstigate possibility of update to latest
`eth-account` and `eth_abi`, and fix any related issues.