kevinvenson / eventTickets

0 stars 0 forks source link

eventTickets.sol #1

Open kevinvenson opened 5 years ago

kevinvenson commented 5 years ago

pragma solidity 0.4.20;

contract eventTickets { struct Event { uint tickets; string description; string web; } mapping(uint => Event)public events; uint id; address owner = msg.sender;

modifier onlyOwner() {
    require(msg.sender == owner);
    _;
}

function createEvent(uint _tickets, string _description, string _web) onlyOwner public {

    Event memory newEvent = newEvent;
    newEvent.tickets = _tickets;
    newEvent.description = _description;
    newEvent.web = _web;
    events[id] = newEvent;
    id++;
}

}

kevinvenson commented 5 years ago

pragma solidity 0.4.20;

contract eventTickets { struct Event { uint tickets; uint sold; string description; string web; mapping(address => uint) buyers; } mapping(uint => Event)public events; uint id; address owner = msg.sender;

modifier onlyOwner() {
    require(msg.sender == owner);
    _;
}

function createEvent(uint _tickets, string _description, string _web) onlyOwner public {

    Event memory newEvent = newEvent;
    newEvent.tickets = _tickets;
    newEvent.description = _description;
    newEvent.web = _web;
    events[id] = newEvent;
    id++;
}

function getEvent(uint _id) view public returns(uint, uint, string, string) {
    return(events[_id].tickets, events[_id].sold, events[_id].description, events[_id].web);
}

function buyTicket(uint _id) payable public {
    require(msg.value == 1 ether);
    events[_id].buyers[msg.sender] = 1;
    events[_id].sold++;
}

function refundbuyer(uint _id) public {
    require(events[_id].buyers[msg.sender] == 1);
    delete events[_id].buyers[msg.sender];
    events[_id].sold--;
    msg.sender.transfer(1 ether);
}

}