The installed solc version must be exactly the same as the version being used.
Run on a Token Address:
slither-check-erc 0x2A46f2fFD99e19a89476E2f62270e0a35bBf0756 DigitalMediaCore --erc ERC721Installing'0.4.25'...Version'0.4.25' installed.WARNING:CryticCompile:Warning: crytic-export/etherscan-contracts/0x2A46f2fFD99e19a89476E2f62270e0a35bBf0756-DigitalMediaCore.sol:169:3: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.functionOwnable() public {^ (Relevant source part starts here and spans across multiple lines).Warning: crytic-export/etherscan-contracts/0x2A46f2fFD99e19a89476E2f62270e0a35bBf0756-DigitalMediaCore.sol:960:3: Warning: Defining constructors as functions with the same name as the contract is deprecated. Use "constructor(...) { ... }" instead.functionERC721Token(string _name, string _symbol) public {^ (Relevant source part starts here and spans across multiple lines).Warning: crytic-export/etherscan-contracts/0x2A46f2fFD99e19a89476E2f62270e0a35bBf0756-DigitalMediaCore.sol:362:17: Warning: This function only accepts a single "bytes" argument. Please use "abi.encodePacked(...)" or a similar function to encode the data.require(keccak256(candidateCreatorRegistryStore.typeOfContract())==keccak256("approvedCreatorRegistry"));^-------------------------------------------------------^Warning: crytic-export/etherscan-contracts/0x2A46f2fFD99e19a89476E2f62270e0a35bBf0756-DigitalMediaCore.sol:362:17: Warning: The provided argument of type string memory is not implicitly convertible to expected type bytes memory.require(keccak256(candidateCreatorRegistryStore.typeOfContract())==keccak256("approvedCreatorRegistry"));^-------------------------------------------------------^# Check DigitalMediaCore## Check functions[✓] balanceOf(address)is present[✓] balanceOf(address)-> ()(correct return value)[✓] balanceOf(address)is view[✓] ownerOf(uint256)is present[✓] ownerOf(uint256)-> ()(correct return value)[✓] ownerOf(uint256)is view[✓] safeTransferFrom(address,address,uint256,bytes)is present[✓] safeTransferFrom(address,address,uint256,bytes)-> ()(correct return type)[✓] Transfer(address,address,uint256)is emitted[✓] safeTransferFrom(address,address,uint256)is present[✓] safeTransferFrom(address,address,uint256)-> ()(correct return type)[✓] Transfer(address,address,uint256)is emitted[✓] transferFrom(address,address,uint256)is present[✓] transferFrom(address,address,uint256)-> ()(correct return type)[✓] Transfer(address,address,uint256)is emitted[✓] approve(address,uint256)is present[✓] approve(address,uint256)-> ()(correct return type)[✓] Approval(address,address,uint256)is emitted[✓] setApprovalForAll(address,bool)is present[✓] setApprovalForAll(address,bool)-> ()(correct return type)[✓] ApprovalForAll(address,address,bool)is emitted[✓] getApproved(uint256)is present[✓] getApproved(uint256)-> ()(correct return value)[✓] getApproved(uint256)is view[✓] isApprovedForAll(address,address)is present[✓] isApprovedForAll(address,address)-> ()(correct return value)[✓] isApprovedForAll(address,address)is view[✓] supportsInterface(bytes4)is present[✓] supportsInterface(bytes4)-> ()(correct return value)[✓] supportsInterface(bytes4)is view[✓] name()is present[✓] name()-> ()(correct return value)[✓] name()is view[✓] symbol()is present[✓] symbol()-> ()(correct return value)[✓] tokenURI(uint256)is present[✓] tokenURI(uint256)-> ()(correct return value)## Check events[✓] Transfer(address,address,uint256)is present[✓] parameter 0 is indexed[✓] parameter 1 is indexed[]parameter 2 should be indexed[✓] Approval(address,address,uint256)is present[✓] parameter 0 is indexed[✓] parameter 1 is indexed[]parameter 2 should be indexed[✓] ApprovalForAll(address,address,bool)is present[✓] parameter 0 is indexed[✓] parameter 1 is indexed
Run on a Single File:
slither tests/uninitialized.sol
Run on a Folder:
slither .
Run with Docker:
docker pull trailofbits/eth-security-toolboxdocker run -it -v /home/share:/share trailofbits/eth-security-toolbox