contract EggToken is StandardToken, Ownable {
  string public name = 'EGGToken';
  string public symbol = 'EGG';
  uint public INITIAL_SUPPLY = 1100000000000000000000000000;
  uint8 public decimals = 18;
  address public whiteListAddress = 0x0;

  constructor() public {
    totalSupply_ = INITIAL_SUPPLY;
    balances[msg.sender] = INITIAL_SUPPLY;
  }

  function transfer(address _to, uint256 _value) public returns (bool) {
    if(whiteListAddress != 0x0) {
      require(WhiteList(whiteListAddress).canTransfer(msg.sender, _to));
    }
    return super.transfer(_to,_value);
  }

  /////////////
  /// Admin ///
  /////////////
  function setWhiteListAddress(address _whiteListAddress)
  public
  onlyOwner {
    whiteListAddress = _whiteListAddress;
  }
}
function setWhiteListAddress(address _whiteListAddress)
public
onlyOwner {
  whiteListAddress = _whiteListAddress;
}

/////////////
/// Admin ///
/////////////