12345678910111213141516171819202122232425262728293031323334 |
- pragma solidity ^0.4.11;
- import "./Ownable.sol";
- import "../token/ERC20Basic.sol";
- /**
- * @title Contracts that should not own Tokens
- * @author Remco Bloemen <remco@2π.com>
- * @dev This blocks incoming ERC23 tokens to prevent accidental loss of tokens.
- * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the
- * owner to reclaim the tokens.
- */
- contract HasNoTokens is Ownable {
- /**
- * @dev Reject all ERC23 compatible tokens
- * @param from_ address The address that is transferring the tokens
- * @param value_ Uint the amount of the specified token
- * @param data_ Bytes The data passed from the caller.
- */
- function tokenFallback(address from_, uint value_, bytes data_) external {
- throw;
- }
- /**
- * @dev Reclaim all ERC20Basic compatible tokens
- * @param tokenAddr address The address of the token contract
- */
- function reclaimToken(address tokenAddr) external onlyOwner {
- ERC20Basic tokenInst = ERC20Basic(tokenAddr);
- uint256 balance = tokenInst.balanceOf(this);
- tokenInst.transfer(owner, balance);
- }
- }
|