|
|
@ -18,7 +18,6 @@ from z3 import ( |
|
|
|
URem, |
|
|
|
URem, |
|
|
|
SRem, |
|
|
|
SRem, |
|
|
|
BitVec, |
|
|
|
BitVec, |
|
|
|
Solver, |
|
|
|
|
|
|
|
is_true, |
|
|
|
is_true, |
|
|
|
BitVecVal, |
|
|
|
BitVecVal, |
|
|
|
If, |
|
|
|
If, |
|
|
@ -43,7 +42,6 @@ from mythril.laser.ethereum.transaction import ( |
|
|
|
TransactionStartSignal, |
|
|
|
TransactionStartSignal, |
|
|
|
ContractCreationTransaction, |
|
|
|
ContractCreationTransaction, |
|
|
|
) |
|
|
|
) |
|
|
|
from mythril.analysis.solver import get_model |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TT256 = 2 ** 256 |
|
|
|
TT256 = 2 ** 256 |
|
|
|
TT256M1 = 2 ** 256 - 1 |
|
|
|
TT256M1 = 2 ** 256 - 1 |
|
|
@ -924,9 +922,6 @@ class Instruction: |
|
|
|
storage_keys = global_state.environment.active_account.storage.keys() |
|
|
|
storage_keys = global_state.environment.active_account.storage.keys() |
|
|
|
keccak_keys = filter(keccak_function_manager.is_keccak, storage_keys) |
|
|
|
keccak_keys = filter(keccak_function_manager.is_keccak, storage_keys) |
|
|
|
|
|
|
|
|
|
|
|
solver = Solver() |
|
|
|
|
|
|
|
solver.set(timeout=1000) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
results = [] |
|
|
|
results = [] |
|
|
|
new = False |
|
|
|
new = False |
|
|
|
|
|
|
|
|
|
|
@ -934,7 +929,7 @@ class Instruction: |
|
|
|
key_argument = keccak_function_manager.get_argument(keccak_key) |
|
|
|
key_argument = keccak_function_manager.get_argument(keccak_key) |
|
|
|
index_argument = keccak_function_manager.get_argument(index) |
|
|
|
index_argument = keccak_function_manager.get_argument(index) |
|
|
|
|
|
|
|
|
|
|
|
if is_true(key_argument == index_argument): |
|
|
|
if is_true(simplify(key_argument == index_argument)): |
|
|
|
return self._sstore_helper( |
|
|
|
return self._sstore_helper( |
|
|
|
copy(global_state), |
|
|
|
copy(global_state), |
|
|
|
keccak_key, |
|
|
|
keccak_key, |
|
|
|