false
false
The Sokol Testnet is currently lacking validators. Please consider using Goerli or Mumbai for testing purposes.

Contract Address Details
contract

0x910916210FEAbD4b4B4A10a89DCD135150ED5196

Contract Name
Raffle
Creator
0x00a302–f894e7 at 0x0df6ab–a942d8
Balance
0.01 SPOA
Tokens
Fetching tokens...
Transactions
4 Transactions
Transfers
0 Transfers
Gas Used
708,979
Last Balance Update
27736955
Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
Contract name:
Raffle




Optimization enabled
true
Compiler version
v0.4.25+commit.59dbf8f1




Verified at
2018-10-09T02:53:22.488095Z

Contract source code

Sol2uml
new
pragma solidity ^0.4.25;

contract Raffle {
    address public charity = msg.sender;
    uint public ticketPrice;
    bool public raffleClosed = false;
    bool public prizeClaimed = false;
    uint public ticketsPurchased = 0;
    mapping (uint => address) public ticketBuyers;
    uint public amountRaised;
    uint public winningTicketNumber;

    bool public winnerApproved = false;

    // event FundTransfer(address indexed backer, uint amount, bool isContribution);

    modifier onlyBy(address _account) { require(msg.sender == _account); _; }


    function Raffle(
        uint szaboCostOfEachTicket
    ) public {
        ticketPrice = szaboCostOfEachTicket * 1 szabo;
    }

    /**
     * Fallback function
     *
     * The function without name is the default function that is called whenever anyone sends funds to a contract
     */
    function () payable public{
        require(!raffleClosed);
        uint amount = msg.value;
        uint quantity = amount / ticketPrice;
        require(quantity >= 1 && quantity < 100);

        for(uint i = ticketsPurchased; i < quantity;i++){
            ticketBuyers[i] = msg.sender;
            ticketsPurchased += 1;
        }
        
        amountRaised += msg.value;
    }

    function buyTicket() payable public{ 
        require(!raffleClosed);
        uint amount = msg.value;
        uint quantity = amount / ticketPrice;
        require(quantity >= 1 && quantity < 100);

        for(uint i = ticketsPurchased; i < quantity;i++){
            ticketBuyers[i] = msg.sender;
            ticketsPurchased += 1;
        }
        
        amountRaised += msg.value;

    }

    function selectWinningNumber() onlyBy(charity) public{        
        uint winner = uint(keccak256(block.blockhash(block.number-1))) % ticketsPurchased;
        winningTicketNumber = winner;
        raffleClosed = true;
    }

    function claimPrize() public{
        require(winnerApproved);
        require(raffleClosed && !prizeClaimed);
        require(msg.sender == ticketBuyers[winningTicketNumber]);
        prizeClaimed = true;
        msg.sender.transfer(amountRaised / 2);
    }

    function approveWinner() onlyBy(charity) public{
        winnerApproved = true;
    }

    function withdrawEther() onlyBy(charity) public {
        charity.transfer(this.balance);
    }
}
        

Contract ABI

[{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"ticketPrice","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"raffleClosed","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"winningTicketNumber","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"approveWinner","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"winnerApproved","inputs":[],"constant":true},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"claimPrize","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"withdrawEther","inputs":[],"constant":false},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"amountRaised","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"bool","name":""}],"name":"prizeClaimed","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"uint256","name":""}],"name":"ticketsPurchased","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"charity","inputs":[],"constant":true},{"type":"function","stateMutability":"view","payable":false,"outputs":[{"type":"address","name":""}],"name":"ticketBuyers","inputs":[{"type":"uint256","name":""}],"constant":true},{"type":"function","stateMutability":"payable","payable":true,"outputs":[],"name":"buyTicket","inputs":[],"constant":false},{"type":"function","stateMutability":"nonpayable","payable":false,"outputs":[],"name":"selectWinningNumber","inputs":[],"constant":false},{"type":"constructor","stateMutability":"nonpayable","payable":false,"inputs":[{"type":"uint256","name":"szaboCostOfEachTicket"}]},{"type":"fallback","stateMutability":"payable","payable":true}]
              

Contract Creation Code

0x608060405260008054600160a060020a031916331781556002805461ffff191690556003556007805460ff1916905534801561003a57600080fd5b506040516020806105cd833981016040525164e8d4a5100002600155610568806100656000396000f3006080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631209b1f6811461016c5780634f032e9314610193578063569742f7146101bc5780635ace83d7146101d15780637014fe77146101e857806370740ac9146101fd5780637362377b146102125780637b3e5e7b146102275780639042bbf31461023c57806390a7ba5b14610251578063934aa02314610266578063ce010ba314610297578063edca914c146102af578063f35b6068146102b7575b6002546000908190819060ff16156100e657600080fd5b349250600154838115156100f657fe5b0491506001821015801561010a5750606482105b151561011557600080fd5b506003545b8181101561015f576000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790556003805460019081019091550161011a565b5050600580543401905550005b34801561017857600080fd5b506101816102cc565b60408051918252519081900360200190f35b34801561019f57600080fd5b506101a86102d2565b604080519115158252519081900360200190f35b3480156101c857600080fd5b506101816102db565b3480156101dd57600080fd5b506101e66102e1565b005b3480156101f457600080fd5b506101a8610309565b34801561020957600080fd5b506101e6610312565b34801561021e57600080fd5b506101e66103b3565b34801561023357600080fd5b5061018161040a565b34801561024857600080fd5b506101a8610410565b34801561025d57600080fd5b5061018161041e565b34801561027257600080fd5b5061027b610424565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b600435610433565b6101e661044e565b3480156102c357600080fd5b506101e66104eb565b60015481565b60025460ff1681565b60065481565b600054600160a060020a03163381146102f957600080fd5b506007805460ff19166001179055565b60075460ff1681565b60075460ff16151561032357600080fd5b60025460ff16801561033d5750600254610100900460ff16155b151561034857600080fd5b600654600090815260046020526040902054600160a060020a0316331461036e57600080fd5b6002805461010061ff0019909116178155600554604051339290910480156108fc02916000818181858888f193505050501580156103b0573d6000803e3d6000fd5b50565b600054600160a060020a03163381146103cb57600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015610406573d6000803e3d6000fd5b5050565b60055481565b600254610100900460ff1681565b60035481565b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b6002546000908190819060ff161561046557600080fd5b3492506001548381151561047557fe5b049150600182101580156104895750606482105b151561049457600080fd5b506003545b818110156104de576000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19163317905560038054600190810190915501610499565b5050600580543401905550565b60008054600160a060020a031633811461050457600080fd5b600354604080516000194301408152905190819003602001902081151561052757fe5b0660065550506002805460ff191660011790555600a165627a7a723058201ff834eac0c02e7596869bc4f0e5903eaca8415033c364dc4cf59a8bcf16a370002900000000000000000000000000000000000000000000000000000000000003e8

Deployed ByteCode

0x6080604052600436106100cf5763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631209b1f6811461016c5780634f032e9314610193578063569742f7146101bc5780635ace83d7146101d15780637014fe77146101e857806370740ac9146101fd5780637362377b146102125780637b3e5e7b146102275780639042bbf31461023c57806390a7ba5b14610251578063934aa02314610266578063ce010ba314610297578063edca914c146102af578063f35b6068146102b7575b6002546000908190819060ff16156100e657600080fd5b349250600154838115156100f657fe5b0491506001821015801561010a5750606482105b151561011557600080fd5b506003545b8181101561015f576000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff1916331790556003805460019081019091550161011a565b5050600580543401905550005b34801561017857600080fd5b506101816102cc565b60408051918252519081900360200190f35b34801561019f57600080fd5b506101a86102d2565b604080519115158252519081900360200190f35b3480156101c857600080fd5b506101816102db565b3480156101dd57600080fd5b506101e66102e1565b005b3480156101f457600080fd5b506101a8610309565b34801561020957600080fd5b506101e6610312565b34801561021e57600080fd5b506101e66103b3565b34801561023357600080fd5b5061018161040a565b34801561024857600080fd5b506101a8610410565b34801561025d57600080fd5b5061018161041e565b34801561027257600080fd5b5061027b610424565b60408051600160a060020a039092168252519081900360200190f35b3480156102a357600080fd5b5061027b600435610433565b6101e661044e565b3480156102c357600080fd5b506101e66104eb565b60015481565b60025460ff1681565b60065481565b600054600160a060020a03163381146102f957600080fd5b506007805460ff19166001179055565b60075460ff1681565b60075460ff16151561032357600080fd5b60025460ff16801561033d5750600254610100900460ff16155b151561034857600080fd5b600654600090815260046020526040902054600160a060020a0316331461036e57600080fd5b6002805461010061ff0019909116178155600554604051339290910480156108fc02916000818181858888f193505050501580156103b0573d6000803e3d6000fd5b50565b600054600160a060020a03163381146103cb57600080fd5b60008054604051600160a060020a0390911691303180156108fc02929091818181858888f19350505050158015610406573d6000803e3d6000fd5b5050565b60055481565b600254610100900460ff1681565b60035481565b600054600160a060020a031681565b600460205260009081526040902054600160a060020a031681565b6002546000908190819060ff161561046557600080fd5b3492506001548381151561047557fe5b049150600182101580156104895750606482105b151561049457600080fd5b506003545b818110156104de576000818152600460205260409020805473ffffffffffffffffffffffffffffffffffffffff19163317905560038054600190810190915501610499565b5050600580543401905550565b60008054600160a060020a031633811461050457600080fd5b600354604080516000194301408152905190819003602001902081151561052757fe5b0660065550506002805460ff191660011790555600a165627a7a723058201ff834eac0c02e7596869bc4f0e5903eaca8415033c364dc4cf59a8bcf16a3700029