Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. pragma solidity ^0.5.8;
  2.  
  3. contract SimpleBank {
  4. uint8 private clientCount;
  5. mapping (address => uint) private balances;
  6. address public owner;
  7.  
  8. event LogDepositMade(address indexed accountAddress, uint amount);
  9.  
  10. constructor() public payable {
  11. owner = msg.sender;
  12. clientCount = 0;
  13. }
  14.  
  15.  
  16. function enroll() public returns (uint) {
  17. if (clientCount < 3) {
  18. clientCount++;
  19. balances[msg.sender] = 10 ether;
  20. }
  21. return balances[msg.sender];
  22. }
  23.  
  24.  
  25. function deposit() public payable returns (uint) {
  26. balances[msg.sender] += msg.value;
  27. emit LogDepositMade(msg.sender, msg.value);
  28. return balances[msg.sender];
  29. }
  30.  
  31.  
  32. function withdraw(uint withdrawAmount) public returns (uint remainingBal) {
  33. // Check enough balance available, otherwise just return balance
  34. if (withdrawAmount <= balances[msg.sender]) {
  35. balances[msg.sender] -= withdrawAmount;
  36. msg.sender.transfer(withdrawAmount);
  37. }
  38. return balances[msg.sender];
  39. }
  40.  
  41.  
  42. function balance() public view returns (uint) {
  43. return balances[msg.sender];
  44. }
  45.  
  46. function depositsBalance() public view returns (uint) {
  47. return address(this).balance;
  48. }
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement