// SPDX-License-Identifier: MIT pragma solidity ^0.8.29; contract EthVault { address public owner = 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2; event Deposit(address indexed sender, uint256 amount); event Withdrawal(address indexed recipient, uint256 amount); modifier onlyOwner() { require(msg.sender == owner, "Not authorized"); _; } receive() external payable { emit Deposit(msg.sender, msg.value); } function withdraw(uint256 _amount) external onlyOwner { require(address(this).balance >= _amount, "Insufficient balance"); payable(owner).transfer(_amount); emit Withdrawal(owner, _amount); } function getBalance() external view returns (uint256) { return address(this).balance; } }