Skip to content

Instantly share code, notes, and snippets.

@fassko
Created May 19, 2022 07:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save fassko/56c1b327f34c3deb2900df4f090af555 to your computer and use it in GitHub Desktop.
Save fassko/56c1b327f34c3deb2900df4f090af555 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.7+commit.e28d00a7.js&optimize=false&runs=200&gist=
//SPDX-License-Identifier: Unlicense
pragma solidity ^0.8.0;
contract LotteryTicketsDispenser {
event TicketContractCreated();
event TicketsCreated(uint256 ticketCount);
event TicketAssigned(address indexed _address);
uint256 private ticketCount;
uint256 private assignedTicketCount = 0;
mapping(address => uint256) private tickets;
constructor(uint256 _ticketCount) {
ticketCount = _ticketCount;
emit TicketContractCreated();
emit TicketsCreated(ticketCount);
}
function assign(address _address) external {
require(assignedTicketCount < ticketCount);
tickets[_address]++;
assignedTicketCount++;
emit TicketAssigned(_address);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment