Advertisement
Guest User

Untitled

a guest
Mar 20th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.20 KB | None | 0 0
  1. var source = "pragma solidity ^0.4.21;
  2.  
  3. contract Owned {
  4.  
  5. address owner;
  6. uint last_blocknumber;
  7.  
  8.  
  9. function Owned() public {
  10. owner = msg.sender;
  11. }
  12.  
  13. modifier onlyOwner {
  14. require(msg.sender == owner);
  15. _;
  16. }
  17.  
  18. function getBalance() public view returns (uint) {
  19. return address(this).balance;
  20.  
  21. }
  22.  
  23. function withdraw (address _target) public onlyOwner {
  24. require(_target != 0);
  25. _target.transfer(address(this).balance);
  26. }
  27.  
  28. function close() public onlyOwner {
  29. selfdestruct(msg.sender);
  30. }
  31. }
  32.  
  33. contract Gamble is Owned {
  34. uint constant magic = 5;
  35.  
  36. function getMaxBet() public view returns (uint) {
  37. return getBalance()/magic;
  38. }
  39.  
  40. function Play() public payable protect protect_mining {
  41. require(msg.value <= getMaxBet());
  42. if (now % magic != 0) {
  43. msg.sender.transfer(msg.value + msg.value/magic);
  44. last_blocknumber = block.number;
  45. }
  46. }
  47.  
  48. modifier protect {
  49.  
  50. require(tx.origin == msg.sender);
  51. _;
  52. }
  53.  
  54. modifier protect_mining {
  55. //very simple protection against miners
  56. require (block.number != last_blocknumber);
  57. _;
  58. }
  59.  
  60.  
  61. function () public payable {
  62. Play();
  63. }
  64. }";
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement