|
|
@ -56,6 +56,7 @@ class LaserEVM: |
|
|
|
requires_statespace=True, |
|
|
|
requires_statespace=True, |
|
|
|
enable_iprof=False, |
|
|
|
enable_iprof=False, |
|
|
|
enable_coverage_strategy=False, |
|
|
|
enable_coverage_strategy=False, |
|
|
|
|
|
|
|
instruction_laser_plugin=None, |
|
|
|
) -> None: |
|
|
|
) -> None: |
|
|
|
""" |
|
|
|
""" |
|
|
|
Initializes the laser evm object |
|
|
|
Initializes the laser evm object |
|
|
@ -104,16 +105,11 @@ class LaserEVM: |
|
|
|
self.iprof = InstructionProfiler() if enable_iprof else None |
|
|
|
self.iprof = InstructionProfiler() if enable_iprof else None |
|
|
|
|
|
|
|
|
|
|
|
if enable_coverage_strategy: |
|
|
|
if enable_coverage_strategy: |
|
|
|
from mythril.laser.ethereum.plugins.implementations.coverage.coverage_plugin import ( |
|
|
|
|
|
|
|
InstructionCoveragePlugin, |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
from mythril.laser.ethereum.plugins.implementations.coverage.coverage_strategy import ( |
|
|
|
from mythril.laser.ethereum.plugins.implementations.coverage.coverage_strategy import ( |
|
|
|
CoverageStrategy, |
|
|
|
CoverageStrategy, |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
instruction = InstructionCoveragePlugin() |
|
|
|
self.strategy = CoverageStrategy(self.strategy, instruction_laser_plugin) |
|
|
|
instruction.initialize(self) |
|
|
|
|
|
|
|
self.strategy = CoverageStrategy(self.strategy, instruction) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
log.info("LASER EVM initialized with dynamic loader: " + str(dynamic_loader)) |
|
|
|
log.info("LASER EVM initialized with dynamic loader: " + str(dynamic_loader)) |
|
|
|
|
|
|
|
|
|
|
|