ERC Conformance - Building Secure Contracts (original) (raw)

Building Secure Contracts

slither-check-erc checks for ERC's conformance.

Features

slither-check-erc will check that:

Supported ERCs

Usage:

slither-check-erc contract.sol ContractName

For example, on

contract ERC20{

    event Transfer(address indexed,address,uint256);

    function transfer(address, uint256) public{

        emit Transfer(msg.sender,msg.sender,0);
    }

}

The tool will report:

# Check ERC20

## Check functions
[ ] totalSupply() is missing
[ ] balanceOf(address) is missing
[✓] transfer(address,uint256) is present
    [ ] transfer(address,uint256) -> () should return bool
    [✓] Transfer(address,address,uint256) is emitted
[ ] transferFrom(address,address,uint256) is missing
[ ] approve(address,uint256) is missing
[ ] allowance(address,address) is missing
[ ] name() is missing (optional)
[ ] symbol() is missing (optional)
[ ] decimals() is missing (optional)

## Check events
[✓] Transfer(address,address,uint256) is present
    [✓] parameter 0 is indexed
    [ ] parameter 1 should be indexed
[ ] Approval(address,address,uint256) is missing