ETH Price: $2,641.61 (+1.13%)

Contract

0x84b7D95165328d790a34Cc5D7EcF528bE55C65ed
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Ownerkill64879362018-10-10 8:38:552200 days ago1539160735IN
0x84b7D951...bE55C65ed
0 ETH0.000068355
Settle Bet64871212018-10-10 5:39:052200 days ago1539149945IN
0x84b7D951...bE55C65ed
0 ETH0.0003835516
Place Bet64871202018-10-10 5:38:352200 days ago1539149915IN
0x84b7D951...bE55C65ed
0.02 ETH0.000727286.8
Settle Bet64871082018-10-10 5:36:012200 days ago1539149761IN
0x84b7D951...bE55C65ed
0 ETH0.000385616
Place Bet64871052018-10-10 5:35:062200 days ago1539149706IN
0x84b7D951...bE55C65ed
0.01 ETH0.000727716.8
Settle Bet64870992018-10-10 5:33:522200 days ago1539149632IN
0x84b7D951...bE55C65ed
0 ETH0.000337414
Place Bet64870972018-10-10 5:33:092200 days ago1539149589IN
0x84b7D951...bE55C65ed
0.01 ETH0.000620695.8
Settle Bet64870902018-10-10 5:32:042200 days ago1539149524IN
0x84b7D951...bE55C65ed
0 ETH0.00047515
Place Bet64870852018-10-10 5:31:132200 days ago1539149473IN
0x84b7D951...bE55C65ed
0.01 ETH0.000620975.8
Settle Bet64870822018-10-10 5:30:282200 days ago1539149428IN
0x84b7D951...bE55C65ed
0 ETH0.0003371714
Place Bet64870782018-10-10 5:29:172200 days ago1539149357IN
0x84b7D951...bE55C65ed
0.01 ETH0.00070765.8
Settle Bet64805752018-10-09 4:02:552201 days ago1539057775IN
0x84b7D951...bE55C65ed
0 ETH0.0003736711.8
Place Bet64805742018-10-09 4:02:482201 days ago1539057768IN
0x84b7D951...bE55C65ed
0.01 ETH0.00070626.6
Settle Bet64805722018-10-09 4:02:372201 days ago1539057757IN
0x84b7D951...bE55C65ed
0 ETH0.0002841911.8
Place Bet64805672018-10-09 4:01:322201 days ago1539057692IN
0x84b7D951...bE55C65ed
0.01 ETH0.000706626.6
Create Invite ID64805562018-10-09 3:58:502201 days ago1539057530IN
0x84b7D951...bE55C65ed
0 ETH0.000457556.6
Settle Bet64765582018-10-08 12:27:382202 days ago1539001658IN
0x84b7D951...bE55C65ed
0 ETH0.0005066716
Place Bet64765562018-10-08 12:26:522202 days ago1539001612IN
0x84b7D951...bE55C65ed
0.01 ETH0.000599565.6
Settle Bet64757222018-10-08 9:20:412202 days ago1538990441IN
0x84b7D951...bE55C65ed
0 ETH0.00049415.6
Place Bet64757202018-10-08 9:20:152202 days ago1538990415IN
0x84b7D951...bE55C65ed
0.01 ETH0.0013054112.2
Settle Bet64757202018-10-08 9:20:152202 days ago1538990415IN
0x84b7D951...bE55C65ed
0 ETH0.0003757115.6
Place Bet64757162018-10-08 9:19:222202 days ago1538990362IN
0x84b7D951...bE55C65ed
0.01 ETH0.0013061912.2
Settle Bet64757162018-10-08 9:19:222202 days ago1538990362IN
0x84b7D951...bE55C65ed
0 ETH0.0003757115.6
Place Bet64757142018-10-08 9:18:532202 days ago1538990333IN
0x84b7D951...bE55C65ed
0.01 ETH0.0013061912.2
Settle Bet64556892018-10-05 3:34:392205 days ago1538710479IN
0x84b7D951...bE55C65ed
0 ETH0.00062719.8
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
64879362018-10-10 8:38:552200 days ago1539160735
0x84b7D951...bE55C65ed
116.72818781 ETH
64870902018-10-10 5:32:042200 days ago1539149524
0x84b7D951...bE55C65ed
0.0196 ETH
64805752018-10-09 4:02:552201 days ago1539057775
0x84b7D951...bE55C65ed
0.01324324 ETH
64765582018-10-08 12:27:382202 days ago1539001658
0x84b7D951...bE55C65ed
0.01507692 ETH
64757222018-10-08 9:20:412202 days ago1538990441
0x84b7D951...bE55C65ed
0.01580645 ETH
64556892018-10-05 3:34:392205 days ago1538710479
0x84b7D951...bE55C65ed
0.5066415 ETH
64509562018-10-04 9:14:272206 days ago1538644467
0x84b7D951...bE55C65ed
0.01289473 ETH
64490112018-10-04 1:33:252206 days ago1538616805
0x84b7D951...bE55C65ed
0.2746 ETH
64451972018-10-03 10:34:192207 days ago1538562859
0x84b7D951...bE55C65ed
0.02908 ETH
64273532018-09-30 12:35:142210 days ago1538310914
0x84b7D951...bE55C65ed
0.0392 ETH
64269482018-09-30 11:01:372210 days ago1538305297
0x84b7D951...bE55C65ed
0.26486486 ETH
64266942018-09-30 10:00:522210 days ago1538301652
0x84b7D951...bE55C65ed
0.0175 ETH
64266942018-09-30 10:00:522210 days ago1538301652
0x84b7D951...bE55C65ed
0.02227272 ETH
64266912018-09-30 9:59:502210 days ago1538301590
0x84b7D951...bE55C65ed
0.02227272 ETH
64266912018-09-30 9:59:502210 days ago1538301590
0x84b7D951...bE55C65ed
0.0175 ETH
64266792018-09-30 9:57:012210 days ago1538301421
0x84b7D951...bE55C65ed
0.01719298 ETH
64266772018-09-30 9:56:272210 days ago1538301387
0x84b7D951...bE55C65ed
0.0175 ETH
64266472018-09-30 9:51:082210 days ago1538301068
0x84b7D951...bE55C65ed
0.0175 ETH
64266372018-09-30 9:49:262210 days ago1538300966
0x84b7D951...bE55C65ed
0.01719298 ETH
64266372018-09-30 9:49:262210 days ago1538300966
0x84b7D951...bE55C65ed
0.0175 ETH
64266312018-09-30 9:47:282210 days ago1538300848
0x84b7D951...bE55C65ed
0.0175 ETH
64266312018-09-30 9:47:282210 days ago1538300848
0x84b7D951...bE55C65ed
0.01719298 ETH
64266282018-09-30 9:46:092210 days ago1538300769
0x84b7D951...bE55C65ed
0.0175 ETH
64266002018-09-30 9:40:272210 days ago1538300427
0x84b7D951...bE55C65ed
0.0175 ETH
64265862018-09-30 9:36:542210 days ago1538300214
0x84b7D951...bE55C65ed
0.01719298 ETH
View All Internal Transactions
Loading...
Loading
Contract Self Destruct called at Txn Hash 0xaf2e163e3ceb22e5dc4b5e480ff47a31389263a1bb30adfe080c9bf7201134b4


Contract Source Code Verified (Exact Match)

Contract Name:
DiceGame

Compiler Version
v0.4.25+commit.59dbf8f1

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion
/**
 *Submitted for verification at Etherscan.io on 2018-09-25
*/

pragma solidity ^0.4.24;

library SafeMath {

    /**
    * @dev Multiplies two numbers, throws on overflow.
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev Integer division of two numbers, truncating the quotient.
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // Solidity automatically throws when dividing by 0
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold
        return c;
    }

    /**
    * @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev Adds two numbers, throws on overflow.
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

contract DiceGame {

    using SafeMath for *;

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

    uint constant BET_EXPIRATION_BLOCKS = 250;
    uint constant public maxNumber = 96;
    uint constant public minNumber = 2;
    uint public maxProfit = 4 ether;
    uint public maxPendingPayouts; //total unpaid
    uint public minBet = 0.01 ether;
    uint public pID = 150000;


    struct Bet {

        uint amount;
        uint40 placeBlockNumber;
        uint8 roll;
        bool lessThan;
        address player;
    }

    address public signer = 0x62fF37a452F8fc3A471a59127430C1bCFAeaf313;
    address public owner;

    mapping(bytes32 => Bet) public bets;
    mapping(address => uint) playerPendingWithdrawals;
    mapping(address => uint) playerIdxAddr;
    mapping(uint => address) playerAddrIdx;

    event LogBet(bytes32 indexed BetID, address indexed PlayerAddress, uint BetValue, uint PlayerNumber, bool LessThan, uint256 Timestamp);
    event LogResult(bytes32 indexed BetID, address indexed PlayerAddress, uint PlayerNumber, bool LessThan, uint DiceResult, uint BetValue, uint Value, int Status, uint256 Timestamp);
    event LogRefund(bytes32 indexed BetID, address indexed PlayerAddress, uint indexed RefundValue);
    event LogHouseWithdraw(uint indexed amount);

    constructor() payable public {
        owner = msg.sender;
        playerIdxAddr[msg.sender] = pID;
        playerAddrIdx[pID] = msg.sender;

    }

    function setSecretSigner(address _signer) external onlyOwner {
        signer = _signer;
    }

    function setMinBet(uint _minBet) public onlyOwner {
        minBet = _minBet;

    }




    function getPlayerAddr(uint _pid) public view returns (address) {
        return playerAddrIdx[_pid];
    }

    function createInviteID(address _addr) public returns (bool) {
        if (playerIdxAddr[_addr] == 0) {
            pID++;
            playerIdxAddr[_addr] = pID;
            playerAddrIdx[pID] = _addr;
            return true;
        }
        return false;
    }

    function getPlayerId(address _addr) public view returns (uint){
        return playerIdxAddr[_addr];
    }

    function setMaxProfit(uint _maxProfit) public onlyOwner {
        maxProfit = _maxProfit;
    }


    function() public payable {

    }

    function setOwner(address _owner) public onlyOwner {
        owner = _owner;
    }

    function placeBet(uint8 roll, bool lessThan, uint affID, uint lastBlock, bytes32 commit, uint8 v, bytes32 r, bytes32 s) public payable {
        uint amount = msg.value;
        require(amount >= minBet, "Amount is less than minimum bet size");
        require(roll >= minNumber && roll <= maxNumber, "Place number should be with rang.");
        require(block.number < lastBlock, "Commit has expired.");

        bytes32 signatureHash = keccak256(abi.encodePacked(lastBlock, commit));
        require(signer == ecrecover(signatureHash, v, r, s), "ECDSA signature is not valid.");

        Bet storage bet = bets[commit];
        require(bet.player == address(0x0));


        uint possibleWinAmount = getDiceWinAmount(amount, roll, lessThan);

        require(possibleWinAmount <=  amount + maxProfit, "maxProfit limit violation.");

        maxPendingPayouts = maxPendingPayouts.add(possibleWinAmount);

        require(maxPendingPayouts  <=   address(this).balance, "insufficient contract balance for payout.");


        bet.amount = amount;
        bet.placeBlockNumber = uint40(block.number);
        bet.roll = uint8(roll);
        bet.lessThan = lessThan;
        bet.player = msg.sender;

        emit LogBet(commit, msg.sender, amount, bet.roll, bet.lessThan, now);

        if (affID > 150000 && affID <= pID) {
            address affAddress = playerAddrIdx[affID];
            if(affAddress != address(0x0)) {
                playerPendingWithdrawals[affAddress] = playerPendingWithdrawals[affAddress].add(amount.div(100));
            }
        }


    }


    function getDiceWinAmount(uint amount, uint roll, bool lessThan) private pure returns (uint) {

        uint rollNumber = lessThan ? roll : 101 - roll;

        return amount * 98 / rollNumber;
    }

    /**
        refund user bet amount
    */
    function refundBet(bytes32 commit) external {

        Bet storage bet = bets[commit];
        uint amount = bet.amount;
        address player = bet.player;
        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 profit = getDiceWinAmount(amount, bet.roll, bet.lessThan);
        maxPendingPayouts = maxPendingPayouts.sub(profit);

        // Send the refund.
        safeSendFunds(player, amount);

    }


    function settleBet(bytes32 reveal) external {


        bytes32 commit = keccak256(abi.encodePacked(reveal));

        Bet storage bet = bets[commit];

        //save gas
        uint amount = bet.amount;
        uint placeBlockNumber = bet.placeBlockNumber;
        uint8 roll = bet.roll;
        bool lessThan = bet.lessThan;
        address player = bet.player;

        require(amount != 0);
        require(block.number > placeBlockNumber);
        require(block.number <= placeBlockNumber + BET_EXPIRATION_BLOCKS);

        bet.amount = 0;

        uint dice = uint(reveal) % 100 + 1;

        uint diceWinAmount = getDiceWinAmount(amount, roll, lessThan);


        maxPendingPayouts = maxPendingPayouts.sub(diceWinAmount);

        uint diceWin = 0;

        if ((lessThan && dice <= roll) || (!lessThan && dice >= roll)){ //win
            diceWin = diceWinAmount;
            safeSendFunds(player, diceWin);
        }



        emit LogResult(commit, player, roll,lessThan,  dice, amount, diceWin, diceWin == 0 ? 1 : 2, now);





    }

    function clearStorage(bytes32[] cleanCommits) external onlyOwner {
        uint length = cleanCommits.length;

        for (uint i = 0; i < length; i++) {
            Bet storage bet = bets[cleanCommits[i]];
            clearProcessedBet(bet);
        }
    }

    function clearProcessedBet(Bet storage bet) private {

        if (bet.amount != 0 || block.number <= bet.placeBlockNumber + BET_EXPIRATION_BLOCKS) {
            return;
        }

        bet.amount = 0;
        bet.roll = 0;
        bet.placeBlockNumber = 0;
        bet.player = address(0);
    }


    function safeSendFunds(address beneficiary, uint amount) private {
        if (!beneficiary.send(amount)) {
            playerPendingWithdrawals[beneficiary] = playerPendingWithdrawals[beneficiary].add(amount);

        }
    }


    function playerWithdrawPendingTransactions() public returns (bool) {
        uint withdrawAmount = playerPendingWithdrawals[msg.sender];
        require(withdrawAmount > 0);
        playerPendingWithdrawals[msg.sender] = 0;
        if (msg.sender.call.value(withdrawAmount)()) {
            return true;
        } else {
            playerPendingWithdrawals[msg.sender] = withdrawAmount;
            return false;
        }
    }

    function pendingWithdrawalsBalance() public view returns (uint) {
        return playerPendingWithdrawals[msg.sender];
    }

    function houseWithdraw(uint amount) public onlyOwner {

        if (!owner.send(amount)) revert();

        emit LogHouseWithdraw(amount);
    }

    function ownerkill() public onlyOwner {
        selfdestruct(owner);
    }
}

Contract Security Audit

Contract ABI

[{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"signer","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"maxNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_pid","type":"uint256"}],"name":"getPlayerAddr","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minNumber","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"reveal","type":"bytes32"}],"name":"settleBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"roll","type":"uint8"},{"name":"lessThan","type":"bool"},{"name":"affID","type":"uint256"},{"name":"lastBlock","type":"uint256"},{"name":"commit","type":"bytes32"},{"name":"v","type":"uint8"},{"name":"r","type":"bytes32"},{"name":"s","type":"bytes32"}],"name":"placeBet","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[],"name":"pID","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"houseWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_minBet","type":"uint256"}],"name":"setMinBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"minBet","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"playerWithdrawPendingTransactions","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxProfit","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_addr","type":"address"}],"name":"createInviteID","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_addr","type":"address"}],"name":"getPlayerId","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"bets","outputs":[{"name":"amount","type":"uint256"},{"name":"placeBlockNumber","type":"uint40"},{"name":"roll","type":"uint8"},{"name":"lessThan","type":"bool"},{"name":"player","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"ownerkill","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pendingWithdrawalsBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_signer","type":"address"}],"name":"setSecretSigner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"commit","type":"bytes32"}],"name":"refundBet","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxPendingPayouts","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_maxProfit","type":"uint256"}],"name":"setMaxProfit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"cleanCommits","type":"bytes32[]"}],"name":"clearStorage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"BetID","type":"bytes32"},{"indexed":true,"name":"PlayerAddress","type":"address"},{"indexed":false,"name":"BetValue","type":"uint256"},{"indexed":false,"name":"PlayerNumber","type":"uint256"},{"indexed":false,"name":"LessThan","type":"bool"},{"indexed":false,"name":"Timestamp","type":"uint256"}],"name":"LogBet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"BetID","type":"bytes32"},{"indexed":true,"name":"PlayerAddress","type":"address"},{"indexed":false,"name":"PlayerNumber","type":"uint256"},{"indexed":false,"name":"LessThan","type":"bool"},{"indexed":false,"name":"DiceResult","type":"uint256"},{"indexed":false,"name":"BetValue","type":"uint256"},{"indexed":false,"name":"Value","type":"uint256"},{"indexed":false,"name":"Status","type":"int256"},{"indexed":false,"name":"Timestamp","type":"uint256"}],"name":"LogResult","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"BetID","type":"bytes32"},{"indexed":true,"name":"PlayerAddress","type":"address"},{"indexed":true,"name":"RefundValue","type":"uint256"}],"name":"LogRefund","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"amount","type":"uint256"}],"name":"LogHouseWithdraw","type":"event"}]

60806040908152673782dace9d9000006000908155662386f26fc10000600255620249f0600381905560048054600160a060020a03199081167362ff37a452f8fc3a471a59127430c1bcfaeaf3131790915560058054821633908117909155808452600860209081529484208390559190925260099092527f5ef454a6670f0dcfc54ce93280128ce623fa5d8e9d4ef21ff83563fbf02c987d80549091169091179055611423806100b16000396000f30060806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461013f578063238ac933146101605780633a4f6999146101915780634d0d35ff146101b857806355b93031146101d0578063675f6537146101e557806368f319b1146101fd578063717ab112146102295780637a1126f01461023e57806388ea41b9146102565780638da5cb5b1461026e5780639619367d14610283578063a5f4af3314610298578063b539cd55146102c1578063b76689a4146102d6578063c4ae16a8146102f7578063c902c3ae14610318578063d263b7eb1461036e578063d2b022d514610383578063d702087f14610398578063df320b29146103b9578063ed62f501146103d1578063fbd668a9146103e6578063fd2457d7146103fe575b005b34801561014b57600080fd5b5061013d600160a060020a036004351661041e565b34801561016c57600080fd5b5061017561049d565b60408051600160a060020a039092168252519081900360200190f35b34801561019d57600080fd5b506101a66104ac565b60408051918252519081900360200190f35b3480156101c457600080fd5b506101756004356104b1565b3480156101dc57600080fd5b506101a66104cf565b3480156101f157600080fd5b5061013d6004356104d4565b61013d60ff60043581169060243515159060443590606435906084359060a4351660c43560e4356106e3565b34801561023557600080fd5b506101a6610caa565b34801561024a57600080fd5b5061013d600435610cb0565b34801561026257600080fd5b5061013d600435610d62565b34801561027a57600080fd5b50610175610db7565b34801561028f57600080fd5b506101a6610dc6565b3480156102a457600080fd5b506102ad610dcc565b604080519115158252519081900360200190f35b3480156102cd57600080fd5b506101a6610e30565b3480156102e257600080fd5b506102ad600160a060020a0360043516610e36565b34801561030357600080fd5b506101a6600160a060020a0360043516610eb8565b34801561032457600080fd5b50610330600435610ed3565b6040805195865264ffffffffff909416602086015260ff9092168484015215156060840152600160a060020a03166080830152519081900360a00190f35b34801561037a57600080fd5b5061013d610f26565b34801561038f57600080fd5b506101a6610f84565b3480156103a457600080fd5b5061013d600160a060020a0360043516610f97565b3480156103c557600080fd5b5061013d600435611016565b3480156103dd57600080fd5b506101a66111a3565b3480156103f257600080fd5b5061013d6004356111a9565b34801561040a57600080fd5b5061013d60048035602481019101356111fe565b600554600160a060020a0316331461046e576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600454600160a060020a031681565b606081565b600081815260096020526040902054600160a060020a03165b919050565b600281565b6000806000806000806000806000808a6040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061053a5780518252601f19909201916020918201910161051b565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000818152600690925292902080546001820154939f50909d509b505064ffffffffff8116995065010000000000810460ff9081169950660100000000000082041697506701000000000000009004600160a060020a0316955050508715156105ca57600080fd5b4387106105d657600080fd5b60fa87014311156105e657600080fd5b6000895560648b066001019250610601888760ff16876112a4565b600154909250610617908363ffffffff6112d116565b60015550600084801561062d57508560ff168311155b8061064457508415801561064457508560ff168310155b1561065557508061065584826112e3565b600160a060020a0384168a7f89598a6b631c6b957c3b470d9c196f4f90af6f5d1235a991c5cfb3f98f434c8a8888878d878015610693576002610696565b60015b6040805160ff97881681529515156020870152858101949094526060850192909252608084015290921660a08201524260c082015290519081900360e00190a35050505050505050505050565b6000806000806000349450600254851015151561076f576040805160e560020a62461bcd028152602060048201526024808201527f416d6f756e74206973206c657373207468616e206d696e696d756d206265742060448201527f73697a6500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028d60ff1610158015610787575060608d60ff1611155b1515610803576040805160e560020a62461bcd02815260206004820152602160248201527f506c616365206e756d6265722073686f756c6420626520776974682072616e6760448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b438a1161085a576040805160e560020a62461bcd02815260206004820152601360248201527f436f6d6d69742068617320657870697265642e00000000000000000000000000604482015290519081900360640190fd5b6040805160208082018d90528183018c9052825180830384018152606090920192839052815191929182918401908083835b602083106108ab5780518252601f19909201916020918201910161088c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600184898989604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610951573d6000803e3d6000fd5b5050604051601f190151600454600160a060020a0390811691161490506109c2576040805160e560020a62461bcd02815260206004820152601d60248201527f4543445341207369676e6174757265206973206e6f742076616c69642e000000604482015290519081900360640190fd5b600089815260066020526040902060018101549093506701000000000000009004600160a060020a0316156109f657600080fd5b610a04858e60ff168e6112a4565b6000549092508501821115610a63576040805160e560020a62461bcd02815260206004820152601a60248201527f6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000604482015290519081900360640190fd5b600154610a76908363ffffffff61135516565b600181905530311015610af9576040805160e560020a62461bcd02815260206004820152602960248201527f696e73756666696369656e7420636f6e74726163742062616c616e636520666f60448201527f72207061796f75742e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b848360000181905550438360010160006101000a81548164ffffffffff021916908364ffffffffff1602179055508c8360010160056101000a81548160ff021916908360ff1602179055508b8360010160066101000a81548160ff021916908315150217905550338360010160076101000a815481600160a060020a030219169083600160a060020a0316021790555033600160a060020a031689600019167f1ff924a1fcd92e9e9c56a862e3d28797c229db371acf0bd0a36495a684b35954878660010160059054906101000a900460ff168760010160069054906101000a900460ff1642604051808581526020018460ff1681526020018315151515815260200182815260200194505050505060405180910390a3620249f08b118015610c2457506003548b11155b15610c9b575060008a815260096020526040902054600160a060020a03168015610c9b57610c81610c5c86606463ffffffff61136b16565b600160a060020a0383166000908152600760205260409020549063ffffffff61135516565b600160a060020a0382166000908152600760205260409020555b50505050505050505050505050565b60035481565b600554600160a060020a03163314610d00576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600554604051600160a060020a039091169082156108fc029083906000818181858888f193505050501515610d3457600080fd5b60405181907f5ef2421426e1e6a121121bcf696448d0f227f53c009ab3da65342be3a362dff490600090a250565b600554600160a060020a03163314610db2576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600255565b600554600160a060020a031681565b60025481565b33600090815260076020526040812054818111610de857600080fd5b3360008181526007602052604080822082905551839181818185875af19250505015610e175760019150610e2c565b33600090815260076020526040812082905591505b5090565b60005481565b600160a060020a0381166000908152600860205260408120541515610eb0575060038054600190810191829055600160a060020a03831660008181526008602090815260408083208690559482526009905292909220805473ffffffffffffffffffffffffffffffffffffffff19169092179091556104ca565b506000919050565b600160a060020a031660009081526008602052604090205490565b6006602052600090815260409020805460019091015464ffffffffff81169060ff6501000000000082048116916601000000000000810490911690600160a060020a036701000000000000009091041685565b600554600160a060020a03163314610f76576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600554600160a060020a0316ff5b3360009081526007602052604090205490565b600554600160a060020a03163314610fe7576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260066020526040812080546001820154919290916701000000000000009004600160a060020a0316908215156110c1576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600184015464ffffffffff1660fa01431161114c576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008455600184015461117990849060ff65010000000000820481169166010000000000009004166112a4565b60015490915061118f908263ffffffff6112d116565b60015561119c82846112e3565b5050505050565b60015481565b600554600160a060020a031633146111f9576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600055565b60055460009081908190600160a060020a03163314611255576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b839250600091505b8282101561119c576006600086868581811061127557fe5b60209081029290920135835250810191909152604001600020905061129981611382565b60019091019061125d565b600080826112b557836065036112b7565b835b905080856062028115156112c757fe5b0495945050505050565b6000828211156112dd57fe5b50900390565b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050151561135157600160a060020a038216600090815260076020526040902054611337908263ffffffff61135516565b600160a060020a0383166000908152600760205260409020555b5050565b60008282018381101561136457fe5b9392505050565b600080828481151561137957fe5b04949350505050565b805415158061139f5750600181015464ffffffffff1660fa014311155b156113a9576113d4565b600081556001810180547affffffffffffffffffffffffffffffffffffffff00ffffffffffff191690555b5056006f6e6c79206f776e657200000000000000000000000000000000000000000000a165627a7a723058208e98a9ce1fc464273582117ec9fa97e4b523b617a1aedc13fdc8084bd25f001e0029

Deployed Bytecode

0x60806040526004361061013d5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313af4035811461013f578063238ac933146101605780633a4f6999146101915780634d0d35ff146101b857806355b93031146101d0578063675f6537146101e557806368f319b1146101fd578063717ab112146102295780637a1126f01461023e57806388ea41b9146102565780638da5cb5b1461026e5780639619367d14610283578063a5f4af3314610298578063b539cd55146102c1578063b76689a4146102d6578063c4ae16a8146102f7578063c902c3ae14610318578063d263b7eb1461036e578063d2b022d514610383578063d702087f14610398578063df320b29146103b9578063ed62f501146103d1578063fbd668a9146103e6578063fd2457d7146103fe575b005b34801561014b57600080fd5b5061013d600160a060020a036004351661041e565b34801561016c57600080fd5b5061017561049d565b60408051600160a060020a039092168252519081900360200190f35b34801561019d57600080fd5b506101a66104ac565b60408051918252519081900360200190f35b3480156101c457600080fd5b506101756004356104b1565b3480156101dc57600080fd5b506101a66104cf565b3480156101f157600080fd5b5061013d6004356104d4565b61013d60ff60043581169060243515159060443590606435906084359060a4351660c43560e4356106e3565b34801561023557600080fd5b506101a6610caa565b34801561024a57600080fd5b5061013d600435610cb0565b34801561026257600080fd5b5061013d600435610d62565b34801561027a57600080fd5b50610175610db7565b34801561028f57600080fd5b506101a6610dc6565b3480156102a457600080fd5b506102ad610dcc565b604080519115158252519081900360200190f35b3480156102cd57600080fd5b506101a6610e30565b3480156102e257600080fd5b506102ad600160a060020a0360043516610e36565b34801561030357600080fd5b506101a6600160a060020a0360043516610eb8565b34801561032457600080fd5b50610330600435610ed3565b6040805195865264ffffffffff909416602086015260ff9092168484015215156060840152600160a060020a03166080830152519081900360a00190f35b34801561037a57600080fd5b5061013d610f26565b34801561038f57600080fd5b506101a6610f84565b3480156103a457600080fd5b5061013d600160a060020a0360043516610f97565b3480156103c557600080fd5b5061013d600435611016565b3480156103dd57600080fd5b506101a66111a3565b3480156103f257600080fd5b5061013d6004356111a9565b34801561040a57600080fd5b5061013d60048035602481019101356111fe565b600554600160a060020a0316331461046e576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b6005805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600454600160a060020a031681565b606081565b600081815260096020526040902054600160a060020a03165b919050565b600281565b6000806000806000806000806000808a6040516020018082600019166000191681526020019150506040516020818303038152906040526040518082805190602001908083835b6020831061053a5780518252601f19909201916020918201910161051b565b51815160209384036101000a600019018019909216911617905260408051929094018290039091206000818152600690925292902080546001820154939f50909d509b505064ffffffffff8116995065010000000000810460ff9081169950660100000000000082041697506701000000000000009004600160a060020a0316955050508715156105ca57600080fd5b4387106105d657600080fd5b60fa87014311156105e657600080fd5b6000895560648b066001019250610601888760ff16876112a4565b600154909250610617908363ffffffff6112d116565b60015550600084801561062d57508560ff168311155b8061064457508415801561064457508560ff168310155b1561065557508061065584826112e3565b600160a060020a0384168a7f89598a6b631c6b957c3b470d9c196f4f90af6f5d1235a991c5cfb3f98f434c8a8888878d878015610693576002610696565b60015b6040805160ff97881681529515156020870152858101949094526060850192909252608084015290921660a08201524260c082015290519081900360e00190a35050505050505050505050565b6000806000806000349450600254851015151561076f576040805160e560020a62461bcd028152602060048201526024808201527f416d6f756e74206973206c657373207468616e206d696e696d756d206265742060448201527f73697a6500000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60028d60ff1610158015610787575060608d60ff1611155b1515610803576040805160e560020a62461bcd02815260206004820152602160248201527f506c616365206e756d6265722073686f756c6420626520776974682072616e6760448201527f2e00000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b438a1161085a576040805160e560020a62461bcd02815260206004820152601360248201527f436f6d6d69742068617320657870697265642e00000000000000000000000000604482015290519081900360640190fd5b6040805160208082018d90528183018c9052825180830384018152606090920192839052815191929182918401908083835b602083106108ab5780518252601f19909201916020918201910161088c565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390209350600184898989604051600081526020016040526040518085600019166000191681526020018460ff1660ff1681526020018360001916600019168152602001826000191660001916815260200194505050505060206040516020810390808403906000865af1158015610951573d6000803e3d6000fd5b5050604051601f190151600454600160a060020a0390811691161490506109c2576040805160e560020a62461bcd02815260206004820152601d60248201527f4543445341207369676e6174757265206973206e6f742076616c69642e000000604482015290519081900360640190fd5b600089815260066020526040902060018101549093506701000000000000009004600160a060020a0316156109f657600080fd5b610a04858e60ff168e6112a4565b6000549092508501821115610a63576040805160e560020a62461bcd02815260206004820152601a60248201527f6d617850726f666974206c696d69742076696f6c6174696f6e2e000000000000604482015290519081900360640190fd5b600154610a76908363ffffffff61135516565b600181905530311015610af9576040805160e560020a62461bcd02815260206004820152602960248201527f696e73756666696369656e7420636f6e74726163742062616c616e636520666f60448201527f72207061796f75742e0000000000000000000000000000000000000000000000606482015290519081900360840190fd5b848360000181905550438360010160006101000a81548164ffffffffff021916908364ffffffffff1602179055508c8360010160056101000a81548160ff021916908360ff1602179055508b8360010160066101000a81548160ff021916908315150217905550338360010160076101000a815481600160a060020a030219169083600160a060020a0316021790555033600160a060020a031689600019167f1ff924a1fcd92e9e9c56a862e3d28797c229db371acf0bd0a36495a684b35954878660010160059054906101000a900460ff168760010160069054906101000a900460ff1642604051808581526020018460ff1681526020018315151515815260200182815260200194505050505060405180910390a3620249f08b118015610c2457506003548b11155b15610c9b575060008a815260096020526040902054600160a060020a03168015610c9b57610c81610c5c86606463ffffffff61136b16565b600160a060020a0383166000908152600760205260409020549063ffffffff61135516565b600160a060020a0382166000908152600760205260409020555b50505050505050505050505050565b60035481565b600554600160a060020a03163314610d00576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600554604051600160a060020a039091169082156108fc029083906000818181858888f193505050501515610d3457600080fd5b60405181907f5ef2421426e1e6a121121bcf696448d0f227f53c009ab3da65342be3a362dff490600090a250565b600554600160a060020a03163314610db2576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600255565b600554600160a060020a031681565b60025481565b33600090815260076020526040812054818111610de857600080fd5b3360008181526007602052604080822082905551839181818185875af19250505015610e175760019150610e2c565b33600090815260076020526040812082905591505b5090565b60005481565b600160a060020a0381166000908152600860205260408120541515610eb0575060038054600190810191829055600160a060020a03831660008181526008602090815260408083208690559482526009905292909220805473ffffffffffffffffffffffffffffffffffffffff19169092179091556104ca565b506000919050565b600160a060020a031660009081526008602052604090205490565b6006602052600090815260409020805460019091015464ffffffffff81169060ff6501000000000082048116916601000000000000810490911690600160a060020a036701000000000000009091041685565b600554600160a060020a03163314610f76576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600554600160a060020a0316ff5b3360009081526007602052604090205490565b600554600160a060020a03163314610fe7576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260066020526040812080546001820154919290916701000000000000009004600160a060020a0316908215156110c1576040805160e560020a62461bcd02815260206004820152602260248201527f4265742073686f756c6420626520696e20616e2027616374697665272073746160448201527f7465000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b600184015464ffffffffff1660fa01431161114c576040805160e560020a62461bcd02815260206004820152602260248201527f426c6f636b686173682063616e2774206265207175657269656420627920455660448201527f4d2e000000000000000000000000000000000000000000000000000000000000606482015290519081900360840190fd5b60008455600184015461117990849060ff65010000000000820481169166010000000000009004166112a4565b60015490915061118f908263ffffffff6112d116565b60015561119c82846112e3565b5050505050565b60015481565b600554600160a060020a031633146111f9576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b600055565b60055460009081908190600160a060020a03163314611255576040805160e560020a62461bcd02815260206004820152600a60248201526000805160206113d8833981519152604482015290519081900360640190fd5b839250600091505b8282101561119c576006600086868581811061127557fe5b60209081029290920135835250810191909152604001600020905061129981611382565b60019091019061125d565b600080826112b557836065036112b7565b835b905080856062028115156112c757fe5b0495945050505050565b6000828211156112dd57fe5b50900390565b604051600160a060020a0383169082156108fc029083906000818181858888f19350505050151561135157600160a060020a038216600090815260076020526040902054611337908263ffffffff61135516565b600160a060020a0383166000908152600760205260409020555b5050565b60008282018381101561136457fe5b9392505050565b600080828481151561137957fe5b04949350505050565b805415158061139f5750600181015464ffffffffff1660fa014311155b156113a9576113d4565b600081556001810180547affffffffffffffffffffffffffffffffffffffff00ffffffffffff191690555b5056006f6e6c79206f776e657200000000000000000000000000000000000000000000a165627a7a723058208e98a9ce1fc464273582117ec9fa97e4b523b617a1aedc13fdc8084bd25f001e0029

Swarm Source

bzzr://8e98a9ce1fc464273582117ec9fa97e4b523b617a1aedc13fdc8084bd25f001e

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.