Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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