diff --git a/mythril/analysis/ops.py b/mythril/analysis/ops.py index 5751c9a2..5a87261b 100644 --- a/mythril/analysis/ops.py +++ b/mythril/analysis/ops.py @@ -1,18 +1,46 @@ -class Call: +from enum import Enum - def __init__(self, block_uid, addr, call_type, to, value): + +class VarType(Enum): + SYMBOLIC = 1 + CONCRETE = 2 + + +class Variable: + + def __init__(self, value, _type): + self.value = value + self.type = _type + + def __str__(self): + return str(self.value) + + +class Op: + + def __init__(self, block_uid, addr): self.block_uid = block_uid self.addr = addr + + +class Call(Op): + + def __init__(self, block_uid, addr, call_type, to, value): + super(block_uid, addr) self.to = to self.call_type = call_type + self.call_value = value + +class SStore(Op): + + def __init__(self, block_uid, addr, index, value): + super(block_uid, addr) + self.index = index self.value = value - class SStore: - def __init__(self, block_uid, addr, index, value): - self.index = index - self.value = value +class SLoad(Op): - class SLoad: - def __init__(self, index, value): - self.index = index - self.value = value + def __init__(self, block_uid, addr, index, value): + super(block_uid, addr) + self.index = index + self.value = value diff --git a/mythril/analysis/symbolic.py b/mythril/analysis/symbolic.py index bf9440b5..788eed75 100644 --- a/mythril/analysis/symbolic.py +++ b/mythril/analysis/symbolic.py @@ -28,4 +28,10 @@ class StateSpace: # Analysis + self.calls = [] + self.sstores = {} + self.sloads = {} + for node in _svm.nodes: + for instruction in node.instruction_list: + logging.info(instruction) \ No newline at end of file