//SPDX-License-Identifier: Unlicense pragma solidity ^0.8.0; contract SimpleBank { mapping (address => uint) private balances; address public owner; constructor() payable { owner = msg.sender; } function deposit() public payable returns (uint) { balances[msg.sender] += msg.value; return balances[msg.sender]; } function withdraw(uint withdrawAmount) public returns (uint remainingBal) { if (withdrawAmount <= balances[msg.sender]) { balances[msg.sender] -= withdrawAmount; if(payable(msg.sender).send(withdrawAmount)) { return balances[msg.sender]; } } return balances[msg.sender]; } function balance() public view returns (uint) { return balances[msg.sender]; } function depositsBalance() public view returns (uint) { return address(this).balance; } }
0.7.1