zAuction - accountant allows zero value withdrawals/deposits/exchange
Zero value transfers effectively perform a no-operation sometimes followed by calling out to the recipient of the withdrawal.\\nA transfer where `from==to` or where the value is `0` is ineffective.\\n```\\nfunction Withdraw(uint256 amount) external {\\n    ethbalance[msg.sender] = SafeMath.sub(ethbalance[msg.sender], amount);\\n    payable(msg.sender).transfer(amount);\\n    emit Withdrew(msg.sender, amount);\\n}\\n```\\n\\n```\\nfunction Deposit() external payable {\\n    ethbalance[msg.sender] = SafeMath.add(ethbalance[msg.sender], msg.value);\\n    emit Deposited(msg.sender, msg.value);\\n}\\n```\\n\\n```\\n    function zDeposit(address to) external payable onlyZauction {\\n        ethbalance[to] = SafeMath.add(ethbalance[to], msg.value);\\n        emit zDeposited(to, msg.value);\\n    }\\n\\n    function zWithdraw(address from, uint256 amount) external onlyZauction {\\n        ethbalance[from] = SafeMath.sub(ethbalance[from], amount);\\n        emit zWithdrew(from, amount);\\n    }\\n\\n    function Exchange(address from, address to, uint256 amount) external onlyZauction {\\n        ethbalance[from] = SafeMath.sub(ethbalance[from], amount);\\n        ethbalance[to] = SafeMath.add(ethbalance[to], amount);\\n        emit zExchanged(from, to, amount);\\n    }\\n```\\n
Consider rejecting ineffective withdrawals (zero value) or at least avoid issuing a zero value `ETH` transfers. Avoid emitting successful events for ineffective calls to not trigger 3rd party components on noop's.
```\\nfunction Withdraw(uint256 amount) external {\\n    ethbalance[msg.sender] = SafeMath.sub(ethbalance[msg.sender], amount);\\n    payable(msg.sender).transfer(amount);\\n    emit Withdrew(msg.sender, amount);\\n}\\n```\\n