從 Openzeppeling 繼承的契約上的 Slither 工具錯誤
嘿伙計們大家好!
*我正在嘗試使用 SLITHER(分析工具),但是當我嘗試在從 Openzeppelin 繼承的契約上使用它時,它給了我這個錯誤(照片)
錯誤:來源“@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable .sol”未找到:未找到文件。”
錯誤:未找到源“@openzeppelin/contracts/access/Ownable.sol”:未找到文件。
這是我的契約:
合約 WeakToken 是 ERC20Pausable, Ownable{ etc……. }
你們中的一些人使用了 SLITHER Tool嗎?
並且您嘗試使用從 Openzeppeling 繼承的契約?*
Slither 使用crytic-compile來編譯你的合約。如果您指定合約的路徑,
crytic-compile
將嘗試使用您安裝的solc
版本對其進行編譯。solc
無法解決您的"@openzeppelin"
導入問題。我猜你正在使用像Hardhat或Truffle這樣的工具,如果你是,我建議你使用slither .
而不是指定合約的路徑;通過這種方式,crytic 可以意識到您正在使用像Hardhat這樣的框架並使用它進行編譯。另一種解決方案可能是使用
--solc-remaps
fromcrytici-compile
,您的命令將類似於:slither <path_to_your_contract> --solc-remaps @openzeppelin=node_modules/@openzeppelin
回答您的最後一個問題:是的,我已將滑行與繼承自 openzeppelin 契約的契約一起使用。IMO 最簡單的方法是使用Hardhat或Truffle。
從您的根目錄:
滑行合約/WeakToken.sol –solc-remaps @openzeppelin/=$(pwd)/node_modules/@openzeppelin/
#特別感謝@Mauricio Perdomo