簡體   English   中英

無法在智能合約上執行 Mythril

[英]Can't execute Mythril on smart contract

我正在嘗試使用myth analyze <file>與 Mythril 的簡單智能合約,但出現此錯誤:

JX:Attack juanxavier$ myth analyze Counter.sol
    Traceback (most recent call last):
      File "/Library/Frameworks/Python.framework/Versions/3.9/bin/myth", line 33, in <module>
        sys.exit(load_entry_point('mythril==0.23.3', 'console_scripts', 'myth')())
      File "/Library/Frameworks/Python.framework/Versions/3.9/bin/myth", line 25, in importlib_load_entry_point
        return next(matches).load()
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/metadata.py", line 86, in load
        module = import_module(match.group('module'))
      File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
        return _bootstrap._gcd_import(name[level:], package, level)
      File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
      File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
      File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
      File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
      File "<frozen importlib._bootstrap_external>", line 850, in exec_module
      File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/mythril/interfaces/cli.py", line 26, in <module>
        from mythril.mythril import (
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/mythril/mythril/__init__.py", line 3, in <module>
        from .mythril_config import MythrilConfig
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/mythril/mythril/mythril_config.py", line 14, in <module>
        from mythril.ethereum.interface.leveldb.client import EthLevelDB
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/mythril/ethereum/interface/leveldb/client.py", line 13, in <module>
        from mythril.ethereum.interface.leveldb.eth_db import ETH_DB
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/mythril/ethereum/interface/leveldb/eth_db.py", line 3, in <module>
        import plyvel
      File "/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/plyvel/__init__.py", line 6, in <module>
        from ._plyvel import (  # noqa
    ImportError: dlopen(/Users/juanxavier/Library/Python/3.9/lib/python/site-packages/plyvel/_plyvel.cpython-39-darwin.so, 0x0002): symbol not found in flat namespace '__ZTIN7leveldb10ComparatorE'

我正在使用帶有 Monterey OS 的 2014 年末 MacMini。

剛剛解決了。 我嘗試重新安裝 Mythril 並重試:

pip3 uninstall mythril
pip3 install mythril

然后錯誤變為以下:

    JX:contracts juanxavier$ myth analyze Counter.sol
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.9/bin/myth", line 33, in <module>
    sys.exit(load_entry_point('mythril==0.23.3', 'console_scripts', 'myth')())
  File "/Library/Frameworks/Python.framework/Versions/3.9/bin/myth", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/metadata.py", line 86, in load
    module = import_module(match.group('module'))
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/__init__.py", line 8, in <module>
    from mythril.plugin.loader import MythrilPluginLoader
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/plugin/__init__.py", line 1, in <module>
    from mythril.plugin.interface import MythrilPlugin, MythrilCLIPlugin
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/plugin/interface.py", line 2, in <module>
    from mythril.laser.plugin.builder import PluginBuilder as LaserPluginBuilder
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/laser/plugin/builder.py", line 1, in <module>
    from mythril.laser.plugin.interface import LaserPlugin
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/laser/plugin/interface.py", line 1, in <module>
    from mythril.laser.ethereum.svm import LaserEVM
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/laser/ethereum/svm.py", line 9, in <module>
    from mythril.analysis.potential_issues import check_potential_issues
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/analysis/potential_issues.py", line 1, in <module>
    from mythril.analysis.report import Issue
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/analysis/report.py", line 10, in <module>
    from mythril.solidity.soliditycontract import SolidityContract
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/solidity/soliditycontract.py", line 7, in <module>
    from mythril.ethereum.evmcontract import EVMContract
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/ethereum/evmcontract.py", line 8, in <module>
    from mythril.disassembler.disassembly import Disassembly
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/disassembler/disassembly.py", line 2, in <module>
    from mythril.ethereum import util
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/mythril/ethereum/util.py", line 138, in <module>
    all_versions = solcx.get_installable_solc_versions()
AttributeError: module 'solcx' has no attribute 'get_installable_solc_versions'

並通過運行解決了這個問題:

pip3 uninstall py-solc-x

在此之后,我可以成功運行神話。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM