ETH Price: $3,391.53 (+1.68%)

Contract

0xccEeD0b7185fBE7f69c083A6c0F6ff5910548D75
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Kill80904632019-07-05 9:13:201999 days ago1562318000IN
Game365
0 ETH0.000020451.5
Settle Bet79875402019-06-19 8:00:282015 days ago1560931228IN
Game365
0 ETH0.000497214.5
Place Bet79875372019-06-19 7:59:142015 days ago1560931154IN
Game365
0.02 ETH0.001494112
Settle Bet79548412019-06-14 5:14:032020 days ago1560489243IN
Game365
0 ETH0.000205696
Place Bet79548382019-06-14 5:12:552020 days ago1560489175IN
Game365
0.03 ETH0.000623145
Settle Bet79548342019-06-14 5:11:292020 days ago1560489089IN
Game365
0 ETH0.000208786
Place Bet79548302019-06-14 5:10:522020 days ago1560489052IN
Game365
0.1 ETH0.000623415
Settle Bet78705522019-06-01 0:26:352033 days ago1559348795IN
Game365
0 ETH0.000205826
Place Bet78705502019-06-01 0:26:202033 days ago1559348780IN
Game365
0.01 ETH0.000622545
Settle Bet78705462019-06-01 0:25:302033 days ago1559348730IN
Game365
0 ETH0.000205446
Place Bet78705422019-06-01 0:24:202033 days ago1559348660IN
Game365
0.02 ETH0.000622545
Settle Bet78703632019-05-31 23:47:242033 days ago1559346444IN
Game365
0 ETH0.000164314.8
Place Bet78703612019-05-31 23:47:182033 days ago1559346438IN
Game365
0.04 ETH0.0004984
Settle Bet78703202019-05-31 23:35:122033 days ago1559345712IN
Game365
0 ETH0.000164784.8
Place Bet78703182019-05-31 23:34:482033 days ago1559345688IN
Game365
0.02 ETH0.000498034
Settle Bet78703162019-05-31 23:34:282033 days ago1559345668IN
Game365
0 ETH0.000163864.8
Place Bet78703142019-05-31 23:33:442033 days ago1559345624IN
Game365
0.01 ETH0.000497524
Settle Bet78558822019-05-29 17:37:382035 days ago1559151458IN
Game365
0 ETH0.000407312
Place Bet78558792019-05-29 17:37:082035 days ago1559151428IN
Game365
0.05 ETH0.0012450910
Settle Bet77939102019-05-20 1:12:342045 days ago1558314754IN
Game365
0 ETH0.000285188.4
Place Bet77939052019-05-20 1:12:072045 days ago1558314727IN
Game365
0.01 ETH0.00074716
Settle Bet77747592019-05-17 1:16:122048 days ago1558055772IN
Game365
0 ETH0.000336439.8
Place Bet77747542019-05-17 1:15:082048 days ago1558055708IN
Game365
0.01 ETH0.000997098
Settle Bet77302372019-05-10 2:54:132055 days ago1557456853IN
Game365
0 ETH0.000203316
Place Bet77302332019-05-10 2:52:542055 days ago1557456774IN
Game365
0.01 ETH0.000622265
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
80904632019-07-05 9:13:201999 days ago1562318000
Game365
32.45343526 ETH
79875402019-06-19 8:00:282015 days ago1560931228
Game365
0.02364 ETH
79548412019-06-14 5:14:032020 days ago1560489243
Game365
0.042768 ETH
79548342019-06-14 5:11:292020 days ago1560489089
Game365
0.14112 ETH
78705522019-06-01 0:26:352033 days ago1559348795
Game365
0.0194 ETH
78705462019-06-01 0:25:302033 days ago1559348730
Game365
0.0394 ETH
78703632019-05-31 23:47:242033 days ago1559346444
Game365
0.0792 ETH
78703202019-05-31 23:35:122033 days ago1559345712
Game365
1 wei
78703162019-05-31 23:34:282033 days ago1559345668
Game365
1 wei
78558822019-05-29 17:37:382035 days ago1559151458
Game365
1 wei
77939102019-05-20 1:12:342045 days ago1558314754
Game365
1 wei
77747592019-05-17 1:16:122048 days ago1558055772
Game365
1 wei
77302372019-05-10 2:54:132055 days ago1557456853
Game365
1 wei
77249752019-05-09 7:03:052056 days ago1557385385
Game365
0.01276315 ETH
77189352019-05-08 8:15:132057 days ago1557303313
Game365
1 wei
77108802019-05-07 1:53:212058 days ago1557194001
Game365
1 wei
77107462019-05-07 1:22:572058 days ago1557192177
Game365
1 wei
77106982019-05-07 1:13:442058 days ago1557191624
Game365
1 wei
76805192019-05-02 8:22:562063 days ago1556785376
Game365
1 wei
76805102019-05-02 8:21:142063 days ago1556785274
Game365
0.03054857 ETH
76804952019-05-02 8:16:222063 days ago1556784982
Game365
1 wei
76786652019-05-02 1:22:492063 days ago1556760169
Game365
0.02686153 ETH
76674082019-04-30 7:16:502065 days ago1556608610
Game365
0.1176 ETH
76285522019-04-24 6:23:422071 days ago1556087022
Game365
0.03907894 ETH
76285432019-04-24 6:20:552071 days ago1556086855
Game365
0.0194 ETH
View All Internal Transactions
Loading...
Loading
Contract Self Destruct called at Txn Hash 0x39ff126cd20d8094aea4d39a95412038d23b821a6879d05c217d1149e31d29b4


Contract Source Code Verified (Exact Match)

Contract Name:
Game365Meta

Compiler Version
v0.5.4+commit.9549d8ff

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2019-02-19
*/

pragma solidity <= 0.6;

contract Game365Meta {

    /*
        set constants
    */
    uint constant HOUSE_EDGE_PERCENT = 1;
    uint constant HOUSE_EDGE_MINIMUM_AMOUNT = 0.0003 ether; 

    // Chance to win jackpot (currently 0.1%) and fee deducted into jackpot fund.
    uint public constant MIN_JACKPOT_BET = 0.1 ether;
    uint public constant JACKPOT_MODULO = 1000; 
    uint constant JACKPOT_FEE = 0.001 ether; 
    // There is minimum and maximum bets.
    uint public constant MIN_BET = 0.01 ether;
    uint constant MAX_AMOUNT = 300000 ether; 
    
    // Modulo is a number of equiprobable outcomes in a game:
    //  - 2 for coin flip
    //  - 6 for dice
    //  - 6*6 = 36 for double dice
    //  - 100 for etheroll
    //  etc.
    // It's called so because 256-bit entropy is treated like a huge integer and
    // the remainder of its division by modulo is considered bet outcome.
    uint constant MAX_MODULO = 100;
    uint constant MAX_MASK_MODULO = 40;

    // This is a check on bet mask overflow.
    uint constant MAX_BET_MASK = 2 ** MAX_MASK_MODULO;

    // EVM BLOCKHASH opcode can query no further than 256 blocks into the
    // past. Given that settleBet uses block hash of placeBet as one of
    // complementary entropy sources, we cannot process bets older than this
    // threshold. On rare occasions our croupier may fail to invoke
    // settleBet in this timespan due to technical issues or extreme Ethereum
    // congestion; such bets can be refunded via invoking refundBet.
    uint constant BET_EXPIRATION_BLOCKS = 250;

    // This are some constants making O(1) population count in placeBet possible.
    // See whitepaper for intuition and proofs behind it.
    uint constant POPCNT_MULT = 0x0000000000002000000000100000000008000000000400000000020000000001;
    uint constant POPCNT_MASK = 0x0001041041041041041041041041041041041041041041041041041041041041;
    uint constant POPCNT_MODULO = 0x3F; // decimal:63, binary:111111
    
    // Owner setting
    address payable public owner = address(0x0);

    // Croupier account.
    address public croupier = address(0x0);

    // The address corresponding to a private key used to sign placeBet commits.
    address public secretSigner = address(0x0);

    // Adjustable max bet profit and start winning the jackpot. Used to cap bets against dynamic odds.
    uint public maxProfit = 5 ether;
    uint public minJackpotWinAmount = 0.1 ether;

    // Funds that are locked in potentially winning bets. Prevents contract from
    // committing to bets it cannot pay out.
    uint256 public lockedInBets_;
    uint256 public lockedInJackpot_;

    struct Bet {
        // Wager amount in wei.
        uint128 amount;
        // Modulo of a game.
        uint8 modulo;
        // Number of winning outcomes, used to compute winning payment (* modulo/rollUnder),
        // and used instead of mask for games with modulo > MAX_MASK_MODULO.
        uint8 rollUnder;
        // Block number of placeBet tx.
        uint40 placeBlockNumber;
        // Bit mask representing winning bet outcomes (see MAX_MASK_MODULO comment).
        uint40 mask;
        // Address of a gambler, used to pay out winning bets.
        address payable gambler;
    }
    mapping(uint256 => Bet) bets;

    // Events that are issued to make statistic recovery easier.
    event FailedPayment(uint256 indexed commit, address indexed beneficiary, uint amount, uint jackpotAmount);
    event Payment(uint256 indexed commit, address indexed beneficiary, uint amount, uint jackpotAmount);
    event JackpotPayment(address indexed beneficiary, uint amount);
    event Commit(uint256 indexed commit, uint256 possibleWinAmount);
    
    /**
        Constructor
     */
    constructor () 
        public
    {
        owner = msg.sender;
    }

    /**
        Modifier
    */
    // Standard modifier on methods invokable only by contract owner.
    modifier onlyOwner {
        require (msg.sender == owner, "OnlyOwner methods called by non-owner.");
        _;
    }
    
    // Standard modifier on methods invokable only by contract owner.
    modifier onlyCroupier {
        require (msg.sender == croupier, "OnlyCroupier methods called by non-croupier.");
        _;
    }

    // See comment for "secretSigner" variable.
    function setSecretSigner(address newSecretSigner) external onlyOwner {
        secretSigner = newSecretSigner;
    }

    // Change the croupier address.
    function setCroupier(address newCroupier) external onlyOwner {
        croupier = newCroupier;
    }

    function setMaxProfit(uint _maxProfit) public onlyOwner {
        require (_maxProfit < MAX_AMOUNT, "maxProfit should be a sane number.");
        maxProfit = _maxProfit;
    }

    function setMinJackPotWinAmount(uint _minJackpotAmount) public onlyOwner {
        minJackpotWinAmount = _minJackpotAmount;
    }

    // This function is used to bump up the jackpot fund. Cannot be used to lower it.
    function increaseJackpot(uint increaseAmount) external onlyOwner {
        require (increaseAmount <= address(this).balance, "Increase amount larger than balance.");
        require (lockedInJackpot_ + lockedInBets_ + increaseAmount <= address(this).balance, "Not enough funds.");
        lockedInJackpot_ += uint128(increaseAmount);
    }

    // Funds withdrawal to cover costs of our operation.
    function withdrawFunds(address payable beneficiary, uint withdrawAmount) external onlyOwner {
        require (withdrawAmount <= address(this).balance, "Increase amount larger than balance.");
        require (lockedInJackpot_ + lockedInBets_ + withdrawAmount <= address(this).balance, "Not enough funds.");
        sendFunds(1, beneficiary, withdrawAmount, 0);
    }
    
    // Contract may be destroyed only when there are no ongoing bets,
    // either settled or refunded. All funds are transferred to contract owner.
    function kill() external onlyOwner {
        require (lockedInBets_ == 0, "All bets should be processed (settled or refunded) before self-destruct.");
        selfdestruct(owner);
    }

    // Fallback function deliberately left empty. It's primary use case
    // is to top up the bank roll.
    function () external payable {
    }
    
    function placeBet(uint256 betMask, uint256 modulo, uint256 commitLastBlock, uint256 commit, bytes32 r, bytes32 s) 
        external
        payable 
    {
        Bet storage bet = bets[commit];
        require(bet.gambler == address(0), "already betting same commit number");

        uint256 amount = msg.value;
        require (modulo > 1 && modulo <= MAX_MODULO, "Modulo should be within range.");
        require (amount >= MIN_BET && amount <= MAX_AMOUNT, "Amount should be within range.");
        require (betMask > 0 && betMask < MAX_BET_MASK, "Mask should be within range.");

        require (block.number <= commitLastBlock, "Commit has expired.");

        //@DEV It will be changed later.
        bytes memory prefix = "\x19Ethereum Signed Message:\n32";
        bytes32 prefixedHash = keccak256(abi.encodePacked(prefix, commit));
        require (secretSigner == ecrecover(prefixedHash, 28, r, s), "ECDSA signature is not valid.");

        // Winning amount and jackpot increase.
        uint rollUnder;
        
        // Small modulo games specify bet outcomes via bit mask.
        // rollUnder is a number of 1 bits in this mask (population count).
        // This magical looking formula is an efficient way to compute population
        // count on EVM for numbers below 2**40. For detailed proof consult
        // the our whitepaper.
        if(modulo <= MAX_MASK_MODULO){
            rollUnder = ((betMask * POPCNT_MULT) & POPCNT_MASK) % POPCNT_MODULO;
            // mask = betMask;  //Stack too deep, try removing local variables.
        }else{
            require (betMask > 0 && betMask <= modulo, "High modulo range, betMask larger than modulo.");
            rollUnder = betMask;
        }

        uint possibleWinAmount;
        uint jackpotFee;

        (possibleWinAmount, jackpotFee) = getGameWinAmount(amount, modulo, rollUnder);

        // Enforce max profit limit.
        require (possibleWinAmount <= amount + maxProfit, "maxProfit limit violation.");

        // Lock funds.
        lockedInBets_ += uint128(possibleWinAmount);
        lockedInJackpot_ += uint128(jackpotFee);

        // Check whether contract has enough funds to process this bet.
        require (lockedInJackpot_ + lockedInBets_ <= address(this).balance, "Cannot afford to lose this bet.");
        
        // Record commit in logs.
        emit Commit(commit, possibleWinAmount);

        bet.amount = uint128(amount);
        bet.modulo = uint8(modulo);
        bet.rollUnder = uint8(rollUnder);
        bet.placeBlockNumber = uint40(block.number);
        bet.mask = uint40(betMask);
        bet.gambler = msg.sender;
    }
    
    // This is the method used to settle 99% of bets. To process a bet with a specific
    // "commit", settleBet should supply a "reveal" number that would Keccak256-hash to
    // "commit". "blockHash" is the block hash of placeBet block as seen by croupier; it
    // is additionally asserted to prevent changing the bet outcomes on Ethereum reorgs.
    function settleBet(uint reveal, bytes32 blockHash) external onlyCroupier {
        uint commit = uint(keccak256(abi.encodePacked(reveal)));

        Bet storage bet = bets[commit];
        uint placeBlockNumber = bet.placeBlockNumber;

        // Check that bet has not expired yet (see comment to BET_EXPIRATION_BLOCKS).
        require (block.number > placeBlockNumber, "settleBet in the same block as placeBet, or before.");
        require (block.number <= placeBlockNumber + BET_EXPIRATION_BLOCKS, "Blockhash can't be queried by EVM.");
        require (blockhash(placeBlockNumber) == blockHash, "Does not matched blockHash.");

        // Settle bet using reveal and blockhash as entropy sources.
        settleBetCommon(bet, reveal, blockHash);
    }

    // Common settlement code for settleBet.
    function settleBetCommon(Bet storage bet, uint reveal, bytes32 entropyBlockHash) private {
        // Fetch bet parameters into local variables (to save gas).
        uint commit = uint(keccak256(abi.encodePacked(reveal)));
        uint amount = bet.amount;
        uint modulo = bet.modulo;
        uint rollUnder = bet.rollUnder;
        address payable gambler = bet.gambler;

        // Check that bet is in 'active' state.
        require (amount != 0, "Bet should be in an 'active' state");

        // Move bet into 'processed' state already.
        bet.amount = 0;
        
        // The RNG - combine "reveal" and blockhash of placeBet using Keccak256. Miners
        // are not aware of "reveal" and cannot deduce it from "commit" (as Keccak256
        // preimage is intractable), and house is unable to alter the "reveal" after
        // placeBet have been mined (as Keccak256 collision finding is also intractable).
        bytes32 entropy = keccak256(abi.encodePacked(reveal, entropyBlockHash));

        // Do a roll by taking a modulo of entropy. Compute winning amount.
        uint game = uint(entropy) % modulo;

        uint gameWinAmount;
        uint _jackpotFee;
        (gameWinAmount, _jackpotFee) = getGameWinAmount(amount, modulo, rollUnder);

        uint gameWin = 0;
        uint jackpotWin = 0;

        // Determine game outcome.
        if (modulo <= MAX_MASK_MODULO) {
            // For small modulo games, check the outcome against a bit mask.
            if ((2 ** game) & bet.mask != 0) {
                gameWin = gameWinAmount;
            }
        } else {
            // For larger modulos, check inclusion into half-open interval.
            if (game < rollUnder) {
                gameWin = gameWinAmount;
            }
        }

        // Unlock the bet amount, regardless of the outcome.
        lockedInBets_ -= uint128(gameWinAmount);

        // Roll for a jackpot (if eligible).
        if (amount >= MIN_JACKPOT_BET && lockedInJackpot_ >= minJackpotWinAmount) {
            // The second modulo, statistically independent from the "main" dice roll.
            // Effectively you are playing two games at once!
            uint jackpotRng = (uint(entropy) / modulo) % JACKPOT_MODULO;

            // Bingo!
            if (jackpotRng == 0) {
                jackpotWin = lockedInJackpot_;
                lockedInJackpot_ = 0;
            }
        }

        // Log jackpot win.
        if (jackpotWin > 0) {
            emit JackpotPayment(gambler, jackpotWin);
        }

        // Send the funds to gambler.
        sendFunds(commit, gambler, gameWin, jackpotWin);
    }

    function getGameWinAmount(uint amount, uint modulo, uint rollUnder) private pure returns (uint winAmount, uint jackpotFee) {
        require (0 < rollUnder && rollUnder <= modulo, "Win probability out of range.");

        jackpotFee = amount >= MIN_JACKPOT_BET ? JACKPOT_FEE : 0;

        uint houseEdge = amount * HOUSE_EDGE_PERCENT / 100;

        if (houseEdge < HOUSE_EDGE_MINIMUM_AMOUNT) {
            houseEdge = HOUSE_EDGE_MINIMUM_AMOUNT;
        }

        require (houseEdge + jackpotFee <= amount, "Bet doesn't even cover house edge.");
        winAmount = (amount - houseEdge - jackpotFee) * modulo / rollUnder;
    }
    
    // Refund transaction - return the bet amount of a roll that was not processed in a
    // due timeframe. Processing such blocks is not possible due to EVM limitations (see
    // BET_EXPIRATION_BLOCKS comment above for details). In case you ever find yourself
    // in a situation like this, just contact the our support, however nothing
    // precludes you from invoking this method yourself.
    function refundBet(uint commit) external {
        // Check that bet is in 'active' state.
        Bet storage bet = bets[commit];
        uint amount = bet.amount;

        require (amount != 0, "Bet should be in an 'active' state");

        // Check that bet has already expired.
        require (block.number > bet.placeBlockNumber + BET_EXPIRATION_BLOCKS, "Blockhash can't be queried by EVM.");

        // Move bet into 'processed' state, release funds.
        bet.amount = 0;
        
        uint gameWinAmount;
        uint jackpotFee;
        (gameWinAmount, jackpotFee) = getGameWinAmount(amount, bet.modulo, bet.rollUnder);

        lockedInBets_ -= uint128(gameWinAmount);
        lockedInJackpot_ -= uint128(jackpotFee);

        // Send the refund.
        sendFunds(commit, bet.gambler, amount, 0);
    }

    // Helper routine to process the payment.
    function sendFunds(uint commit, address payable beneficiary, uint gameWin, uint jackpotWin) private {
        uint amount = gameWin + jackpotWin == 0 ? 1 wei : gameWin + jackpotWin;
        uint successLogAmount = gameWin;

        if (beneficiary.send(amount)) {
            emit Payment(commit, beneficiary, successLogAmount, jackpotWin);
        } else {
            emit FailedPayment(commit, beneficiary, amount, 0);
        }
    }
    
}

Contract Security Audit

Contract ABI

[{"constant":true,"inputs":[],"name":"JACKPOT_MODULO","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MIN_JACKPOT_BET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_minJackpotAmount","type":"uint256"}],"name":"setMinJackPotWinAmount","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockedInJackpot_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"kill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"secretSigner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"betMask","type":"uint256"},{"name":"modulo","type":"uint256"},{"name":"commitLastBlock","type":"uint256"},{"name":"commit","type":"uint256"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"MIN_BET","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"croupier","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minJackpotWinAmount","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"beneficiary","type":"address"},{"name":"withdrawAmount","type":"uint256"}],"name":"withdrawFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"reveal","type":"uint256"},{"name":"blockHash","type":"bytes32"}],"name":"settleBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"increaseAmount","type":"uint256"}],"name":"increaseJackpot","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"newSecretSigner","type":"address"}],"name":"setSecretSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"commit","type":"uint256"}],"name":"refundBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"lockedInBets_","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newCroupier","type":"address"}],"name":"setCroupier","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_maxProfit","type":"uint256"}],"name":"setMaxProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"commit","type":"uint256"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"jackpotAmount","type":"uint256"}],"name":"FailedPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"commit","type":"uint256"},{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"},{"indexed":false,"name":"jackpotAmount","type":"uint256"}],"name":"Payment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"beneficiary","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"JackpotPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"commit","type":"uint256"},{"indexed":false,"name":"possibleWinAmount","type":"uint256"}],"name":"Commit","type":"event"}]

608060405260008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550674563918244f4000060035567016345785d8a00006004553480156100ed57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061232b8061013d6000396000f3fe60806040526004361061013c576000357c010000000000000000000000000000000000000000000000000000000090048063abb8303b116100bd578063d702087f11610081578063d702087f146104d2578063e1fdb4b414610523578063e63ea2811461055e578063f8bb201c14610589578063fbd668a9146105da5761013c565b8063abb8303b146103a1578063b539cd55146103cc578063c1075329146103f7578063ca722cdc14610452578063d6d30a51146104975761013c565b80634d61537f116101045780634d61537f146102115780635e83b463146102685780636540742f146102c85780636b5c5f39146102f35780638da5cb5b1461034a5761013c565b806301f602171461013e5780630cf9349d146101695780631c692c0b14610194578063387d9037146101cf57806341c0e1b5146101fa575b005b34801561014a57600080fd5b50610153610615565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e61061b565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101cd600480360360208110156101b757600080fd5b8101908080359060200190929190505050610627565b005b3480156101db57600080fd5b506101e46106d8565b6040518082815260200191505060405180910390f35b34801561020657600080fd5b5061020f6106de565b005b34801561021d57600080fd5b5061022661081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c6600480360360c081101561027e57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610842565b005b3480156102d457600080fd5b506102dd611081565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b5061030861108c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035657600080fd5b5061035f6110b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ad57600080fd5b506103b66110d7565b6040518082815260200191505060405180910390f35b3480156103d857600080fd5b506103e16110dd565b6040518082815260200191505060405180910390f35b34801561040357600080fd5b506104506004803603604081101561041a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e3565b005b34801561045e57600080fd5b506104956004803603604081101561047557600080fd5b8101908080359060200190929190803590602001909291905050506112a5565b005b3480156104a357600080fd5b506104d0600480360360208110156104ba57600080fd5b81019080803590602001909291905050506114f6565b005b3480156104de57600080fd5b50610521600480360360208110156104f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116cb565b005b34801561052f57600080fd5b5061055c6004803603602081101561054657600080fd5b81019080803590602001909291905050506117b6565b005b34801561056a57600080fd5b506105736119cf565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b506105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d5565b005b3480156105e657600080fd5b50610613600480360360208110156105fd57600080fd5b8101908080359060200190929190505050611ac0565b005b6103e881565b67016345785d8a000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b8060048190555050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b60006005541415156107e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001806122426048913960600191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008581526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061219d6022913960400191505060405180910390fd5b600034905060018711801561091a575060648711155b151561098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e000081525060200191505060405180910390fd5b662386f26fc1000081101580156109af5750693f870857a3e0e38000008111155b1515610a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e742073686f756c642062652077697468696e2072616e67652e000081525060200191505060405180910390fd5b600088118015610a365750602860020a88105b1515610aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d61736b2073686f756c642062652077697468696e2072616e67652e0000000081525060200191505060405180910390fd5b854311151515610b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6d6d69742068617320657870697265642e0000000000000000000000000081525060200191505060405180910390fd5b60606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600081876040516020018083805190602001908083835b602083101515610b985780518252602082019150602081019050602083039250610b73565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200192505050604051602081830303815290604052805190602001209050600181601c888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c37573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b600060288a111515610d6257603f7e010410410410410410410410410410410410410410410410410410410410417920000000001000000000080000000004000000000200000000018d0216811515610d5a57fe5b069050610dcd565b60008b118015610d725750898b11155b1515610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806122b0602e913960400191505060405180910390fd5b8a90505b600080610ddb868d85611bd5565b809250819350505060035486018211151515610e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6d617850726f666974206c696d69742076696f6c6174696f6e2e00000000000081525060200191505060405180910390fd5b816fffffffffffffffffffffffffffffffff16600560008282540192505081905550806fffffffffffffffffffffffffffffffff166006600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff16316005546006540111151515610f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f74206166666f726420746f206c6f73652074686973206265742e0081525060200191505060405180910390fd5b897facafc53544c2ca5cd4dbfda9282c25a35859f0d4ceb77a8275dca1660b1ed3ad836040518082815260200191505060405180910390a2858760000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508b8760000160106101000a81548160ff021916908360ff160217905550828760000160116101000a81548160ff021916908360ff160217905550438760000160126101000a81548164ffffffffff021916908364ffffffffff1602179055508c8760000160176101000a81548164ffffffffff021916908364ffffffffff160217905550338760010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050505050565b662386f26fc1000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156111fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061221e6024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181600554600654010111151515611293576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f7420656e6f7567682066756e64732e00000000000000000000000000000081525060200191505060405180910390fd5b6112a1600183836000611d26565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f2602c913960400191505060405180910390fd5b6000826040516020018082815260200191505060405160208183030381529060405280519060200120600190049050600060076000838152602001908152602001600020905060008160000160129054906101000a900464ffffffffff1664ffffffffff169050804311151561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806121bf6033913960400191505060405180910390fd5b60fa8101431115151561146c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122de6022913960400191505060405180910390fd5b8381401415156114e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f446f6573206e6f74206d61746368656420626c6f636b486173682e000000000081525060200191505060405180910390fd5b6114ef828686611e3a565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115151561160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061221e6024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1631816005546006540101111515156116a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f7420656e6f7567682066756e64732e00000000000000000000000000000081525060200191505060405180910390fd5b806fffffffffffffffffffffffffffffffff1660066000828254019250508190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060076000838152602001908152602001600020905060008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905060008114151515611860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061217b6022913960400191505060405180910390fd5b60fa8260000160129054906101000a900464ffffffffff1664ffffffffff1601431115156118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122de6022913960400191505060405180910390fd5b60008260000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008061194b838560000160109054906101000a900460ff1660ff168660000160119054906101000a900460ff1660ff16611bd5565b8092508193505050816fffffffffffffffffffffffffffffffff16600560008282540392505081905550806fffffffffffffffffffffffffffffffff166006600082825403925050819055506119c8858560010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000611d26565b5050505050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b693f870857a3e0e380000081101515611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806121376022913960400191505060405180910390fd5b8060038190555050565b600080826000108015611be85750838311155b1515611c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f57696e2070726f626162696c697479206f7574206f662072616e67652e00000081525060200191505060405180910390fd5b67016345785d8a0000851015611c73576000611c7c565b66038d7ea4c680005b90506000606460018702811515611c8f57fe5b049050660110d9316ec000811015611cac57660110d9316ec00090505b8582820111151515611d09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806121596022913960400191505060405180910390fd5b8385838389030302811515611d1a57fe5b04925050935093915050565b60008082840114611d3957818301611d3c565b60015b905060008390508473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015611dd9578473ffffffffffffffffffffffffffffffffffffffff16867f18cd56b3b5d7c0d015402709124a50282389601c018b30730138c1fd30b249e18386604051808381526020018281526020019250505060405180910390a3611e32565b8473ffffffffffffffffffffffffffffffffffffffff16867fe781ffba117fc05b201ed9a3830783e7eb5c6b6496655520584ecf315dc86f37846000604051808381526020018281526020019250505060405180910390a35b505050505050565b600082604051602001808281526020019150506040516020818303038152906040528051906020012060019004905060008460000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905060008560000160109054906101000a900460ff1660ff16905060008660000160119054906101000a900460ff1660ff16905060008760010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008414151515611f57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061217b6022913960400191505060405180910390fd5b60008860000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000878760405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000848260019004811515611fd757fe5b069050600080611fe8888888611bd5565b8092508193505050600080905060008090506028891115156120385760008e60000160179054906101000a900464ffffffffff1664ffffffffff168660020a16141515612033578391505b612045565b87851015612044578391505b5b836fffffffffffffffffffffffffffffffff1660056000828254039250508190555067016345785d8a00008a10158015612083575060045460065410155b156120c25760006103e88a886001900481151561209c57fe5b048115156120a657fe5b06905060008114156120c057600654915060006006819055505b505b600081111561211a578673ffffffffffffffffffffffffffffffffffffffff167fc388db0e8aa560a59633c094a0d0aa21322cd6234836fd5bac00fc5ae63b5783826040518082815260200191505060405180910390a25b6121268b888484611d26565b505050505050505050505050505056fe6d617850726f6669742073686f756c6420626520612073616e65206e756d6265722e42657420646f65736e2774206576656e20636f76657220686f75736520656467652e4265742073686f756c6420626520696e20616e202761637469766527207374617465616c72656164792062657474696e672073616d6520636f6d6d6974206e756d626572736574746c6542657420696e207468652073616d6520626c6f636b20617320706c6163654265742c206f72206265666f72652e4f6e6c7943726f7570696572206d6574686f64732063616c6c6564206279206e6f6e2d63726f75706965722e496e63726561736520616d6f756e74206c6172676572207468616e2062616c616e63652e416c6c20626574732073686f756c642062652070726f6365737365642028736574746c6564206f7220726566756e64656429206265666f72652073656c662d64657374727563742e4f6e6c794f776e6572206d6574686f64732063616c6c6564206279206e6f6e2d6f776e65722e48696768206d6f64756c6f2072616e67652c206265744d61736b206c6172676572207468616e206d6f64756c6f2e426c6f636b686173682063616e277420626520717565726965642062792045564d2ea165627a7a72305820112287f9dc0c1ce7a8f6cefc7700d12b1991649c2629b487734fe32740d5183b0029

Deployed Bytecode

0x60806040526004361061013c576000357c010000000000000000000000000000000000000000000000000000000090048063abb8303b116100bd578063d702087f11610081578063d702087f146104d2578063e1fdb4b414610523578063e63ea2811461055e578063f8bb201c14610589578063fbd668a9146105da5761013c565b8063abb8303b146103a1578063b539cd55146103cc578063c1075329146103f7578063ca722cdc14610452578063d6d30a51146104975761013c565b80634d61537f116101045780634d61537f146102115780635e83b463146102685780636540742f146102c85780636b5c5f39146102f35780638da5cb5b1461034a5761013c565b806301f602171461013e5780630cf9349d146101695780631c692c0b14610194578063387d9037146101cf57806341c0e1b5146101fa575b005b34801561014a57600080fd5b50610153610615565b6040518082815260200191505060405180910390f35b34801561017557600080fd5b5061017e61061b565b6040518082815260200191505060405180910390f35b3480156101a057600080fd5b506101cd600480360360208110156101b757600080fd5b8101908080359060200190929190505050610627565b005b3480156101db57600080fd5b506101e46106d8565b6040518082815260200191505060405180910390f35b34801561020657600080fd5b5061020f6106de565b005b34801561021d57600080fd5b5061022661081c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102c6600480360360c081101561027e57600080fd5b81019080803590602001909291908035906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190505050610842565b005b3480156102d457600080fd5b506102dd611081565b6040518082815260200191505060405180910390f35b3480156102ff57600080fd5b5061030861108c565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561035657600080fd5b5061035f6110b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103ad57600080fd5b506103b66110d7565b6040518082815260200191505060405180910390f35b3480156103d857600080fd5b506103e16110dd565b6040518082815260200191505060405180910390f35b34801561040357600080fd5b506104506004803603604081101561041a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506110e3565b005b34801561045e57600080fd5b506104956004803603604081101561047557600080fd5b8101908080359060200190929190803590602001909291905050506112a5565b005b3480156104a357600080fd5b506104d0600480360360208110156104ba57600080fd5b81019080803590602001909291905050506114f6565b005b3480156104de57600080fd5b50610521600480360360208110156104f557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506116cb565b005b34801561052f57600080fd5b5061055c6004803603602081101561054657600080fd5b81019080803590602001909291905050506117b6565b005b34801561056a57600080fd5b506105736119cf565b6040518082815260200191505060405180910390f35b34801561059557600080fd5b506105d8600480360360208110156105ac57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119d5565b005b3480156105e657600080fd5b50610613600480360360208110156105fd57600080fd5b8101908080359060200190929190505050611ac0565b005b6103e881565b67016345785d8a000081565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415156106ce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b8060048190555050565b60065481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515610785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b60006005541415156107e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260488152602001806122426048913960600191505060405180910390fd5b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16ff5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600760008581526020019081526020016000209050600073ffffffffffffffffffffffffffffffffffffffff168160010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610904576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061219d6022913960400191505060405180910390fd5b600034905060018711801561091a575060648711155b151561098e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f4d6f64756c6f2073686f756c642062652077697468696e2072616e67652e000081525060200191505060405180910390fd5b662386f26fc1000081101580156109af5750693f870857a3e0e38000008111155b1515610a23576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f416d6f756e742073686f756c642062652077697468696e2072616e67652e000081525060200191505060405180910390fd5b600088118015610a365750602860020a88105b1515610aaa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4d61736b2073686f756c642062652077697468696e2072616e67652e0000000081525060200191505060405180910390fd5b854311151515610b22576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f436f6d6d69742068617320657870697265642e0000000000000000000000000081525060200191505060405180910390fd5b60606040805190810160405280601c81526020017f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152509050600081876040516020018083805190602001908083835b602083101515610b985780518252602082019150602081019050602083039250610b73565b6001836020036101000a03801982511681845116808217855250505050505090500182815260200192505050604051602081830303815290604052805190602001209050600181601c888860405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa158015610c37573d6000803e3d6000fd5b5050506020604051035173ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141515610d05576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4543445341207369676e6174757265206973206e6f742076616c69642e00000081525060200191505060405180910390fd5b600060288a111515610d6257603f7e010410410410410410410410410410410410410410410410410410410410417920000000001000000000080000000004000000000200000000018d0216811515610d5a57fe5b069050610dcd565b60008b118015610d725750898b11155b1515610dc9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602e8152602001806122b0602e913960400191505060405180910390fd5b8a90505b600080610ddb868d85611bd5565b809250819350505060035486018211151515610e5f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f6d617850726f666974206c696d69742076696f6c6174696f6e2e00000000000081525060200191505060405180910390fd5b816fffffffffffffffffffffffffffffffff16600560008282540192505081905550806fffffffffffffffffffffffffffffffff166006600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff16316005546006540111151515610f38576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f43616e6e6f74206166666f726420746f206c6f73652074686973206265742e0081525060200191505060405180910390fd5b897facafc53544c2ca5cd4dbfda9282c25a35859f0d4ceb77a8275dca1660b1ed3ad836040518082815260200191505060405180910390a2858760000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055508b8760000160106101000a81548160ff021916908360ff160217905550828760000160116101000a81548160ff021916908360ff160217905550438760000160126101000a81548164ffffffffff021916908364ffffffffff1602179055508c8760000160176101000a81548164ffffffffff021916908364ffffffffff160217905550338760010160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050505050505050505050565b662386f26fc1000081565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60045481565b60035481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561118a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181111515156111fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061221e6024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff163181600554600654010111151515611293576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f7420656e6f7567682066756e64732e00000000000000000000000000000081525060200191505060405180910390fd5b6112a1600183836000611d26565b5050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561134d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806121f2602c913960400191505060405180910390fd5b6000826040516020018082815260200191505060405160208183030381529060405280519060200120600190049050600060076000838152602001908152602001600020905060008160000160129054906101000a900464ffffffffff1664ffffffffff169050804311151561140e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806121bf6033913960400191505060405180910390fd5b60fa8101431115151561146c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122de6022913960400191505060405180910390fd5b8381401415156114e4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f446f6573206e6f74206d61746368656420626c6f636b486173682e000000000081525060200191505060405180910390fd5b6114ef828686611e3a565b5050505050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614151561159d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1631811115151561160f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061221e6024913960400191505060405180910390fd5b3073ffffffffffffffffffffffffffffffffffffffff1631816005546006540101111515156116a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260118152602001807f4e6f7420656e6f7567682066756e64732e00000000000000000000000000000081525060200191505060405180910390fd5b806fffffffffffffffffffffffffffffffff1660066000828254019250508190555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611772576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600060076000838152602001908152602001600020905060008160000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905060008114151515611860576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061217b6022913960400191505060405180910390fd5b60fa8260000160129054906101000a900464ffffffffff1664ffffffffff1601431115156118d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806122de6022913960400191505060405180910390fd5b60008260000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060008061194b838560000160109054906101000a900460ff1660ff168660000160119054906101000a900460ff1660ff16611bd5565b8092508193505050816fffffffffffffffffffffffffffffffff16600560008282540392505081905550806fffffffffffffffffffffffffffffffff166006600082825403925050819055506119c8858560010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856000611d26565b5050505050565b60055481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611a7c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141515611b67576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061228a6026913960400191505060405180910390fd5b693f870857a3e0e380000081101515611bcb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806121376022913960400191505060405180910390fd5b8060038190555050565b600080826000108015611be85750838311155b1515611c5c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f57696e2070726f626162696c697479206f7574206f662072616e67652e00000081525060200191505060405180910390fd5b67016345785d8a0000851015611c73576000611c7c565b66038d7ea4c680005b90506000606460018702811515611c8f57fe5b049050660110d9316ec000811015611cac57660110d9316ec00090505b8582820111151515611d09576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806121596022913960400191505060405180910390fd5b8385838389030302811515611d1a57fe5b04925050935093915050565b60008082840114611d3957818301611d3c565b60015b905060008390508473ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505015611dd9578473ffffffffffffffffffffffffffffffffffffffff16867f18cd56b3b5d7c0d015402709124a50282389601c018b30730138c1fd30b249e18386604051808381526020018281526020019250505060405180910390a3611e32565b8473ffffffffffffffffffffffffffffffffffffffff16867fe781ffba117fc05b201ed9a3830783e7eb5c6b6496655520584ecf315dc86f37846000604051808381526020018281526020019250505060405180910390a35b505050505050565b600082604051602001808281526020019150506040516020818303038152906040528051906020012060019004905060008460000160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16905060008560000160109054906101000a900460ff1660ff16905060008660000160119054906101000a900460ff1660ff16905060008760010160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905060008414151515611f57576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602281526020018061217b6022913960400191505060405180910390fd5b60008860000160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055506000878760405160200180838152602001828152602001925050506040516020818303038152906040528051906020012090506000848260019004811515611fd757fe5b069050600080611fe8888888611bd5565b8092508193505050600080905060008090506028891115156120385760008e60000160179054906101000a900464ffffffffff1664ffffffffff168660020a16141515612033578391505b612045565b87851015612044578391505b5b836fffffffffffffffffffffffffffffffff1660056000828254039250508190555067016345785d8a00008a10158015612083575060045460065410155b156120c25760006103e88a886001900481151561209c57fe5b048115156120a657fe5b06905060008114156120c057600654915060006006819055505b505b600081111561211a578673ffffffffffffffffffffffffffffffffffffffff167fc388db0e8aa560a59633c094a0d0aa21322cd6234836fd5bac00fc5ae63b5783826040518082815260200191505060405180910390a25b6121268b888484611d26565b505050505050505050505050505056fe6d617850726f6669742073686f756c6420626520612073616e65206e756d6265722e42657420646f65736e2774206576656e20636f76657220686f75736520656467652e4265742073686f756c6420626520696e20616e202761637469766527207374617465616c72656164792062657474696e672073616d6520636f6d6d6974206e756d626572736574746c6542657420696e207468652073616d6520626c6f636b20617320706c6163654265742c206f72206265666f72652e4f6e6c7943726f7570696572206d6574686f64732063616c6c6564206279206e6f6e2d63726f75706965722e496e63726561736520616d6f756e74206c6172676572207468616e2062616c616e63652e416c6c20626574732073686f756c642062652070726f6365737365642028736574746c6564206f7220726566756e64656429206265666f72652073656c662d64657374727563742e4f6e6c794f776e6572206d6574686f64732063616c6c6564206279206e6f6e2d6f776e65722e48696768206d6f64756c6f2072616e67652c206265744d61736b206c6172676572207468616e206d6f64756c6f2e426c6f636b686173682063616e277420626520717565726965642062792045564d2ea165627a7a72305820112287f9dc0c1ce7a8f6cefc7700d12b1991649c2629b487734fe32740d5183b0029

Swarm Source

bzzr://112287f9dc0c1ce7a8f6cefc7700d12b1991649c2629b487734fe32740d5183b

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.