contract WisePlat is MintableToken {
  string public name = "WisePlat Token";
  string public symbol = "WISE";
  uint256 public decimals = 18;
  address public bountyWallet = 0x0;

  bool public transferStatus = false;

  /**
   * @dev modifier that throws if trading has not started yet
   */
  modifier hasStartedTransfer() {
    require(transferStatus || msg.sender == bountyWallet);
    _;
  }

  /**
   * @dev Allows the owner to enable transfer.
   */
  function startTransfer() public onlyOwner {
    transferStatus = true;
  }
  /**
   * @dev Allows the owner to stop transfer.
   */
  function stopTransfer() public onlyOwner {
    transferStatus = false;
  }

  function setbountyWallet(address _bountyWallet) public onlyOwner {
    bountyWallet = _bountyWallet;
  }

  /**
   * @dev Allows anyone to transfer the WISE tokens once transfer has started
   * @param _to the recipient address of the tokens.
   * @param _value number of tokens to be transfered.
   */
  function transfer(address _to, uint _value) hasStartedTransfer returns (bool){
    return super.transfer(_to, _value);
  }

  /**
   * @dev Allows anyone to transfer the WISE tokens once transfer has started
   * @param _from address The address which you want to send tokens from
   * @param _to address The address which you want to transfer to
   * @param _value uint the amout of tokens to be transfered
   */
  function transferFrom(address _from, address _to, uint _value) hasStartedTransfer returns (bool){
    return super.transferFrom(_from, _to, _value);
  }
}
function startTransfer() public onlyOwner {
  transferStatus = true;
}

/**
 * @dev Allows the owner to enable transfer.
 */