pragma solidity ^0.4.18; contract Subscription { uint public wins; mapping(address => uint) public availableCalls; uint costPerCall = 0.001 ether; function buyCalls() public payable { uint callsPurchased = msg.value / costPerCall; availableCalls[msg.sender] += callsPurchased; } modifier onlyIfEnoughCalls() { require(availableCalls[msg.sender] > 0); availableCalls[msg.sender]--; _; } function winGame() public onlyIfEnoughCalls { wins++; // do whatever you want } }
0.4.19