Contract Address
Tip
For comprehensive insights into secure development practices, consider visiting the Development Recommendations section of the Smart Contract Security Field Guide. This resource provides in-depth articles to guide you in developing robust and secure smart contracts.
Consider also preventing the transfer of tokens to the same address of the smart contract.
An example of the potential for loss by leaving this open is the EOS token smart contract where more than 90,000 tokens are stuck at the contract address.
Example¶
An example of implementing both the above recommendations would be to create the following modifier; validating that the "to" address is neither 0x0 nor the smart contract's own address:
modifier validDestination( address to ) {
require(to != address(0x0));
require(to != address(this) );
_;
}
The modifier should then be applied to the "transfer" and "transferFrom" methods:
function transfer(address _to, uint _value)
validDestination(_to)
returns (bool)
{
(... your logic ...)
}
function transferFrom(address _from, address _to, uint _value)
validDestination(_to)
returns (bool)
{
(... your logic ...)
}