contract SynergisSGRToken is StandardToken, Ownable {
    string  public constant name = "Reputation SGR";
    string  public constant symbol = "SGR";
    uint8   public constant decimals = 18;
    uint256 public constant INITIAL_SUPPLY = 1000000 * (10 ** uint256(decimals));
    

    ///////////////
    // VAR       //
    ///////////////
    //How much tokens can buy for 1 wei (!!!with decimals)
    uint256 public token_rate = 10; 
    uint16  public minimum_token_sell = 10; // 10 tokens = 1 ether(20171102-). 
    uint256 public totalSupply; // All tokens in the world

    //for default  approve in allowed
    address public  proxydeposit; 

    ///////////////
    // EVENTS    //
    ///////////////
    event TokenMint(uint256 tokens, uint256 _block);

    // Constructor,  all tokens place to contact balance
    constructor (address _proxydeposit) public {
        require(_proxydeposit != address(0));
        totalSupply = INITIAL_SUPPLY;
        balances[address(this)] = INITIAL_SUPPLY;
        allowed[address(this)][_proxydeposit] = totalSupply;//
        proxydeposit= _proxydeposit;
        emit Transfer(0, address(this), INITIAL_SUPPLY); 
    }

    //Add New tokens to contract balance
    // newemission - number of new tokens (WITH decimals!!!!!)
    function mintTokens(uint256 newEmission) external onlyOwner returns (bool) {
        require(newEmission > 0);
        balances[address(this)] = balances[address(this)].add(newEmission);
        totalSupply = totalSupply.add(newEmission);
        allowed[address(this)][proxydeposit] =  allowed[address(this)][proxydeposit].add(newEmission);
        emit TokenMint(newEmission, block.number);
        emit Transfer(0, address(this), newEmission);
        return true;
    }


    function setTokenRate(uint32 newRate) public onlyOwner {
        token_rate = uint256(newRate);
    }

    function setMinimumTokenSell(uint16 newNumber) public onlyOwner {
        minimum_token_sell = newNumber;
    }
 //***************************************************************
  // ERC20 part of this contract based on https://github.com/OpenZeppelin/zeppelin-solidity
  // Adapted and amended by IBERGroup, email:maxsizmobile@iber.group; 
  //     Telegram: https://t.me/msmobile
  //               https://t.me/alexamuek
  // Code released under the MIT License(see git root).
  ////**************************************************************

}
//
function mintTokens(uint256 newEmission) external onlyOwner returns (bool) {
    require(newEmission > 0);
    balances[address(this)] = balances[address(this)].add(newEmission);
    totalSupply = totalSupply.add(newEmission);
    allowed[address(this)][proxydeposit] =  allowed[address(this)][proxydeposit].add(newEmission);
    emit TokenMint(newEmission, block.number);
    emit Transfer(0, address(this), newEmission);
    return true;
}

//Add New tokens to contract balance
// newemission - number of new tokens (WITH decimals!!!!!)