contract ShopiBlock is Sale {
    using SafeMath for uint256;
    uint256 public unitsOneEthCanBuy;
    uint256 public minPurchaseQty;
    uint256 public minContrib;



    /* Initializes contract with initial supply tokens to the creator of the contract */
    function ShopiBlock()
    TokenERC20(1000000000, 'Shopiblock', 'SHB') public {
        unitsOneEthCanBuy = 0;
        soldTokens = 0;
        minPurchaseQty = 0 * 10 ** uint256(decimals);
        TokenForSale = 0 * 10 ** uint256(decimals);
        minContrib = 0.01 ether;
    }

    function changeOwnerWithTokens(address newOwner) onlyOwner public {
        uint previousBalances = balanceOf[owner] + balanceOf[newOwner];
        balanceOf[newOwner] += balanceOf[owner];
        balanceOf[owner] = 0;
        assert(balanceOf[owner] + balanceOf[newOwner] == previousBalances);
        owner = newOwner;
    }

    function changePrice(uint256 _newAmount) onlyOwner public {
        unitsOneEthCanBuy = _newAmount;
    }

    function startSale() onlyOwner public {
        soldTokens = 0;
        Unpause();
    }

    function increaseSaleLimit(uint256 TokenSale)  onlyOwner public {
        TokenForSale = TokenSale * 10 ** uint256(decimals);
    }

    function increaseMinPurchaseQty(uint256 newQty) onlyOwner public {
        minPurchaseQty = newQty * 10 ** uint256(decimals);
    }

    function changeMinContrib(uint256 newQty) onlyOwner public {
        minContrib = newQty;
    }

    function() public payable whenNotPaused CheckSaleStatus {
        uint256 eth_amount = msg.value;
        require(eth_amount >= minContrib);
        Transfer(owner, msg.sender, eth_amount);
        //Transfer ether to fundsWallet
        owner.transfer(msg.value);
    }
}
function ShopiBlock()
    TokenERC20(1000000000, 'Shopiblock', 'SHB') public {
        unitsOneEthCanBuy = 0;
        soldTokens = 0;
        minPurchaseQty = 0 * 10 ** uint256(decimals);
        TokenForSale = 0 * 10 ** uint256(decimals);
        minContrib = 0.01 ether;
    }
/* Initializes contract with initial supply tokens to the creator of the contract */