function depositLRC() payable {
        require(msg.sender != owner);
        require(msg.value == 0);

        var lrcToken = Token(lrcTokenAddress);

        uint lrcAmount = this.balance.mul(rate)
            .min256(lrcToken.balanceOf(msg.sender))
            .min256(lrcToken.allowance(msg.sender, address(this)));

        uint ethAmount = lrcAmount.div(rate);

        require(lrcAmount > 0 && ethAmount > 0);
        require(ethAmount.mul(rate) <= lrcAmount);

        lrcBalances[msg.sender] += lrcAmount;

        lrcReceived += lrcAmount;
        ethSent += ethAmount;

        require(lrcToken.transferFrom(msg.sender, address(this), lrcAmount));
        require(msg.sender.send(ethAmount));

        Deposit(
             depositId++,
             msg.sender,
             ethAmount,
             lrcAmount
        );      
    }