Solidity

從 Openzeppeling 繼承的契約上的 Slither 工具錯誤

  • August 23, 2021

嘿伙計們大家好

*我正在嘗試使用 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"導入問題。我猜你正在使用像HardhatTruffle這樣的工具,如果你是,我建議你使用slither .而不是指定合約的路徑;通過這種方式,crytic 可以意識到您正在使用像Hardhat這樣的框架並使用它進行編譯。

另一種解決方案可能是使用--solc-remapsfrom crytici-compile,您的命令將類似於:

slither <path_to_your_contract> --solc-remaps @openzeppelin=node_modules/@openzeppelin

回答您的最後一個問題:是的,我已將滑行與繼承自 openzeppelin 契約的契約一起使用。IMO 最簡單的方法是使用HardhatTruffle

從您的根目錄:

滑行合約/WeakToken.sol –solc-remaps @openzeppelin/=$(pwd)/node_modules/@openzeppelin/

#特別感謝@Mauricio Perdomo

引用自:https://ethereum.stackexchange.com/questions/107416