|
|
|
@ -1,5 +1,6 @@ |
|
|
|
|
from pathlib import Path |
|
|
|
|
|
|
|
|
|
from mythril.mythril import Mythril |
|
|
|
|
from mythril.solidity.soliditycontract import SolidityContract |
|
|
|
|
from tests import BaseTestCase |
|
|
|
|
|
|
|
|
@ -9,7 +10,7 @@ TEST_FILES = Path(__file__).parent / "testdata/input_contracts" |
|
|
|
|
class SolidityContractTest(BaseTestCase): |
|
|
|
|
def test_get_source_info_without_name_gets_latest_contract_info(self): |
|
|
|
|
input_file = TEST_FILES / "multi_contracts.sol" |
|
|
|
|
contract = SolidityContract(str(input_file)) |
|
|
|
|
contract = SolidityContract(str(input_file), solc_binary=Mythril._init_solc_binary('0.4.24')) |
|
|
|
|
|
|
|
|
|
code_info = contract.get_source_info(142) |
|
|
|
|
|
|
|
|
@ -19,7 +20,7 @@ class SolidityContractTest(BaseTestCase): |
|
|
|
|
|
|
|
|
|
def test_get_source_info_with_contract_name_specified(self): |
|
|
|
|
input_file = TEST_FILES / "multi_contracts.sol" |
|
|
|
|
contract = SolidityContract(str(input_file), name="Transfer1") |
|
|
|
|
contract = SolidityContract(str(input_file), name="Transfer1", solc_binary=Mythril._init_solc_binary('0.4.24')) |
|
|
|
|
|
|
|
|
|
code_info = contract.get_source_info(142) |
|
|
|
|
|
|
|
|
@ -29,7 +30,7 @@ class SolidityContractTest(BaseTestCase): |
|
|
|
|
|
|
|
|
|
def test_get_source_info_with_contract_name_specified_constructor(self): |
|
|
|
|
input_file = TEST_FILES / "constructor_assert.sol" |
|
|
|
|
contract = SolidityContract(str(input_file), name="AssertFail") |
|
|
|
|
contract = SolidityContract(str(input_file), name="AssertFail", solc_binary=Mythril._init_solc_binary('0.4.24')) |
|
|
|
|
|
|
|
|
|
code_info = contract.get_source_info(62, constructor=True) |
|
|
|
|
|
|
|
|
|